{"id":223,"date":"2024-03-25T17:07:26","date_gmt":"2024-03-25T09:07:26","guid":{"rendered":"https:\/\/www.vanforever.com.cn\/?p=223"},"modified":"2024-10-11T08:50:20","modified_gmt":"2024-10-11T00:50:20","slug":"ue-ui%e5%ad%a6%e4%b9%a0%e4%b9%8b%e8%b7%af","status":"publish","type":"post","link":"https:\/\/www.vanforever.com.cn\/?p=223","title":{"rendered":"UE UI\u5b66\u4e60\u4e4b\u8def"},"content":{"rendered":"<div  class='collapse-block shadow-sm collapse-block-transparent collapsed hide-border-left'><div class='collapse-block-title'><span class='collapse-block-title-inner'>\u67e5\u770b\u7279\u8272\u56fe\u7247<\/span><i class='collapse-icon fa fa-angle-down'><\/i><\/div><div class='collapse-block-body' style='display:none;'><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/Vanforever\/20240325\/girl-3840x2160-eyelashes-25860.jpeg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large\" data-original=\"https:\/\/pic.vanforever.com.cn\/Vanforever\/20240325\/girl-3840x2160-eyelashes-25860.jpeg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" width=\"3840\" height=\"2160\" \/><\/div><\/div><\/div>\n<h1 id=\"ue-ui\u5b66\u4e60\u4e4b\u8def\">UE UI\u5b66\u4e60\u4e4b\u8def<\/h1>\n<h2 id=\"\u6295\u5c04\u72693dui\">\u6295\u5c04\u72693DUI<\/h2>\n<ol start=\"\">\n<li>\u521b\u5efa\u65b0\u7684UI\u84dd\u56fe,\u5e76\u8c03\u6574Text\u6587\u672c\u7684\u8bbe\u7f6e<\/li>\n<\/ol>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240325\/2024032501.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240325\/2024032501.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240325\/2024032502.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240325\/2024032502.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240325\/2024032503.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240325\/2024032503.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240325\/2024032504.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240325\/2024032504.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<ol start=\"2\">\n<li>\u521b\u5efa\u65b0\u7684Actor\u53d8\u91cf,\u52fe\u9009Instance Editable\u4e0eExpose on Spawn,\u4f7f\u53d8\u91cf\u66b4\u9732\u51fa\u6765<\/li>\n<\/ol>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240325\/2024032505.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240325\/2024032505.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<ol start=\"3\">\n<li>\u4e3a\u67d0\u6750\u8d28\u4e0eUI\u7ed1\u5b9a\u84dd\u56fe,\u4f7f\u5176\u53d7\u5230\u6295\u5c04\u7269\u653b\u51fb\u65f6UI\u751f\u6548<\/li>\n<\/ol>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240325\/2024032506.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240325\/2024032506.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240325\/2024032507.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240325\/2024032507.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240325\/2024032508.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240325\/2024032508.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240325\/2024032509.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240325\/2024032509.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<ol start=\"4\">\n<li>\u786e\u4fdd\u53ea\u6709\u5f53\u6211\u4eec\u653b\u51fb\u65f6,\u4ea7\u751f\u7684\u4f24\u5bb3\u6570\u5b57\u624d\u4f1a\u4ea7\u751f<\/li>\n<\/ol>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240325\/2024032510.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240325\/2024032510.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<ol start=\"5\">\n<li>\u4e3a\u6570\u5b57\u8bbe\u7f6e\u6d88\u4ea1\u65f6\u95f4<\/li>\n<\/ol>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240325\/2024032511.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240325\/2024032511.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<h2 id=\"\u8840\u91cf\u6761\">\u8840\u91cf\u6761<\/h2>\n<h3 id=\"1-\u521b\u5efa\u8840\u91cf\u5c5e\u6027\">1. \u521b\u5efa\u8840\u91cf\u5c5e\u6027<\/h3>\n<p>\u8840\u91cf\u662f\u89d2\u8272\u7684\u4e00\u79cd\u5c5e\u6027\uff0c\u8981\u8bb0\u5f55\u89d2\u8272\u7684\u8840\u91cf\u6570\u636e\uff0c\u4e00\u79cd\u672c\u80fd\u7684\u505a\u6cd5\u662f\u5728SCharacter\u4e2d\u5b9a\u4e49\u4e00\u4e2aHealth\u53d8\u91cf\u3002\u4f46\u8fd9\u79cd\u65b9\u5f0f\u7684\u5f0a\u7aef\u663e\u800c\u6613\u89c1\uff1a\u968f\u7740\u9879\u76ee\u7684\u6269\u5c55\u3001\u6e38\u620f\u4e0d\u65ad\u66f4\u65b0\u8fed\u4ee3\u65b0\u7248\u672c\uff0c\u89d2\u8272\u7684\u5c5e\u6027\u53ef\u80fd\u8fbe\u5230\u51e0\u5341\u4e0a\u767e\uff0c\u82e5\u662f\u52a0\u4e0a\u89d2\u8272\u7684\u6280\u80fd\u3001\u7279\u6027\u3001\u5929\u8d4b\u6216\u5176\u4ed6\u5404\u79cd\u89d2\u8272\u76f8\u5173\u5185\u5bb9\uff0cSCharacter\u7c7b\u7684\u5185\u5bb9\u5c06\u81a8\u80c0\u5230\u6781\u96be\u7ef4\u62a4\u3002<\/p>\n<p>\u5728UE\u4e2d\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898\u7684\u529e\u6cd5\u4e5f\u5f88\u7b80\u5355\uff0c\u5728\u4e4b\u524d\u5f00\u5b9d\u7bb1\u7684\u6587\u7ae0\u4e2d\u5df2\u7ecf\u4ecb\u7ecd\u8fc7\uff0c\u53ef\u4ee5\u4f7f\u7528UE\u4e2d\u7684ActorComponent\u7c7b\uff0c\u8ba9\u6574\u4e2a\u7c7b\u4ee5\u7ec4\u4ef6\u7684\u5f62\u5f0f\u88abSCharacter\u62e5\u6709\u3002\u56e0\u6b64\uff0c\u6211\u4eec\u4eceActorComponent\u521b\u5efa\u89d2\u8272\u7684SAttributeComponent\u7c7b\uff0c\u7528\u4e8e\u5b9e\u73b0\u89d2\u8272\u7684\u5404\u79cd\u5c5e\u6027\u3002<\/p>\n<p>\u968f\u540e\uff0c\u6211\u4eec\u521b\u5efaprotected\u7684\u6d6e\u70b9\u578bHealth\uff0c\u5e76\u63d0\u4f9bpublic\u7684set\u65b9\u6cd5\u3002\u5982\u679c\u6709\u670b\u53cb\u5bf9\u8fd9\u79cd\u8bbe\u8ba1\u65b9\u6cd5\u4e0d\u7406\u89e3\uff0c\u53ef\u4ee5\u81ea\u884c\u4e86\u89e3\u5b66\u4e60\u8bbe\u8ba1\u6a21\u5f0f\u7684\u76f8\u5173\u77e5\u8bc6\uff0c\u5176\u4e2d\u4e00\u4e2a\u57fa\u7840\u7684\u539f\u5219\u5c31\u662f\u5c3d\u91cf\u51cf\u5c11\u5e95\u5c42\u4ee3\u7801\u7684\u66b4\u9732\uff0c\u5373\u4e0d\u8981\u4e3a\u4e86\u4e00\u65f6\u65b9\u4fbf\u6ee5\u7528public\u6765\u4fee\u9970\u53d8\u91cf\u3002<\/p>\n<pre><code class=\"language-cpp\" lang=\"cpp\">\/\/ SAttributeComponent.h\n#pragma once\n\n#include \"CoreMinimal.h\"\n#include \"Components\/ActorComponent.h\"\n#include \"SAttributeComponent.generated.h\"\n\nDECLARE_DYNAMIC_MULTICAST_DELEGATE_FourParams(FOnHealthChanged,AActor*,InstigatorActor,USAttributeComponent*,OwningComp,float,NewHealth,float,Delta);\n\n\nUCLASS( ClassGroup=(Custom), meta=(BlueprintSpawnableComponent) )\nclass ACTIONROGUELIKE_API USAttributeComponent : public UActorComponent\n{\n\tGENERATED_BODY()\n\npublic:\t\n\t\/\/ Sets default values for this component's properties\n\tUSAttributeComponent();\n\nprotected:\n\n\tUPROPERTY(EditDefaultsOnly,BlueprintReadOnly,Category=\"Attributes\")\n\tfloat Health;\n\n\n\npublic:\n\t\n\tUFUNCTION(BlueprintCallable)\n\tbool IsAlive() const;\n\n\n\t\n\t\n\tUPROPERTY(BlueprintAssignable)\n\tFOnHealthChanged OnHealthChanged;\n\t\n\tUFUNCTION(BlueprintCallable,Category=\"Attributes\")\n\tbool ApplyHealthChange(float Delta);\n\t\n\n};\n\n<\/code><\/pre>\n<pre><code class=\"language-cpp\" lang=\"cpp\">\/\/SAttributeComponent.cpp\n\n\n#include \"SAttributeComponent.h\"\n\n\/\/ Sets default values for this component's properties\nUSAttributeComponent::USAttributeComponent()\n{\n\t\/\/ Set this component to be initialized when the game starts, and to be ticked every frame.  You can turn these features\n\t\/\/ off to improve performance if you don't need them.\n\tPrimaryComponentTick.bCanEverTick = true;\n\n\t\/\/ ... \n\tHealth = 100;\n}\n\nbool USAttributeComponent::IsAlive() const\n{\n\treturn Health&gt;0.0f;\n}\n\n\nbool USAttributeComponent::ApplyHealthChange(float Delta)\n{\n\tHealth += Delta;\n\n\tOnHealthChanged.Broadcast(nullptr,this,Health,Delta);\n\treturn true;\n}\n<\/code><\/pre>\n<p>\u7136\u540e\u4f7f\u7528\u5982\u4e0b\u65b9\u6cd5\u5728SCharacter\u4e2d\u58f0\u660e\u7ec4\u4ef6\uff0c\u5e76\u5728.cpp\u4e2d\u521b\u5efa\u76f8\u5e94\u5b9e\u4f8b\uff1a<\/p>\n<pre><code class=\"language-cpp\" lang=\"cpp\">UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = \"Components\")\nUSAttributeComponent* AttributeComp;\n<\/code><\/pre>\n<h3 id=\"2-\u5e94\u7528\u8840\u91cf\u66f4\u6539\">2. \u5e94\u7528\u8840\u91cf\u66f4\u6539<\/h3>\n<p>\u4e3a\u4e86\u6d4b\u8bd5\u8840\u91cf\u7ec4\u4ef6\u80fd\u5426\u6b63\u5e38\u8fd0\u884c\uff0c\u6211\u4eec\u53ef\u4ee5\u7ed9\u9b54\u6cd5\u7c92\u5b50\u9644\u52a0\u4f24\u5bb3\u8ba1\u7b97\uff0c\u5e76\u5229\u7528\u84dd\u56fe\u5feb\u901f\u521b\u5efa\u4e00\u4e2a\u5411\u73a9\u5bb6\u53d1\u5c04\u9b54\u6cd5\u7c92\u5b50\u7684\u654c\u4eba\u3002<\/p>\n<p>\u9996\u5148\uff0c\u5728SMagicProjectile\u4e2d\u4e3a\u7403\u4f53\u7ec4\u4ef6\u7ed1\u5b9a\u4e00\u4e2aOnComponentBeginOverlap\u4e8b\u4ef6\uff0c\u65e8\u5728\u5f53\u9b54\u6cd5\u7c92\u5b50\u4e0e\u7269\u4f53\u91cd\u53e0\u65f6\u89e6\u53d1\u3002\u6bd4\u8d77\u4f7f\u7528\u963b\u6321\u6765\u89e6\u53d1\uff0c\u4f7f\u7528\u91cd\u53e0\u53ef\u4ee5\u901a\u8fc7\u5224\u5b9a\u91cd\u53e0\u5bf9\u8c61\u6765\u66f4\u65b9\u4fbf\u7684\u5ffd\u7565\u53cb\u519b\u4f24\u5bb3\uff0c\u5e76\u4e14\u8ba9\u9b54\u6cd5\u7c92\u5b50\u76f4\u63a5\u7a7f\u8fc7\u53cb\u519b\u7ee7\u7eed\u5728\u573a\u666f\u4e2d\u8ba1\u7b97\u3002<\/p>\n<p>\u7136\u540e\u5728\u51fd\u6570\u4e2d\u5b9e\u73b0\u51cf\u5c11\u8840\u91cf\u7684\u4ee3\u7801<\/p>\n<pre><code class=\"language-cpp\" lang=\"cpp\">\/\/SMagicProjectile.h\nUFUNCTION()\n\tvoid OnActorOverlap(UPrimitiveComponent* OverlappedComponent, AActor* OtherActor,\n\tUPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult&amp; SweepResult);\n\n\/\/SMagicProjectile.cpp\nSphereComp-&gt;OnComponentBeginOverlap.AddDynamic(this,&amp;ASMagicProjectile::OnActorOverlap);\n\nvoid ASMagicProjectile::OnActorOverlap(UPrimitiveComponent* OverlappedComponent, AActor* OtherActor,\n\tUPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult&amp; SweepResult)\n{\n\tif(OtherActor &amp;&amp; OtherActor != GetInstigator())\n\t{\n\t\tUSAttributeComponent* AttributeComp = Cast&lt;USAttributeComponent&gt;(OtherActor-&gt;GetComponentByClass(USAttributeComponent::StaticClass()));\n        \/\/ \u518d\u6b21\u5224\u7a7a\uff0c\u53ef\u80fd\u78b0\u5230\u7684\u662f\u5899\u58c1\u3001\u7bb1\u5b50\u7b49\u6ca1\u6709\u8840\u91cf\u7684\u7269\u4f53\n\t\tif(AttributeComp)\n\t\t{\n            \/\/ \u9b54\u6cd5\u7c92\u5b50\u9020\u6210DamageAmount\u8840\u91cf\u4f24\u5bb3\n\t\t\tAttributeComp-&gt;ApplyHealthChange(-DamageAmount);\n\t\t\t\n            \/\/ \u4e00\u65e6\u9020\u6210\u4f24\u5bb3\u5c31\u9500\u6bc1\uff0c\u907f\u514d\u7a7f\u8fc7\u89d2\u8272\u7ee7\u7eed\u8ba1\u7b97\n\t\t\tDestroy();\n\t\t}\n\t}\n}\n<\/code><\/pre>\n<p>\u7531\u4e8e\u6211\u4eec\u5e0c\u671b\u5b50\u5f39\u53ef\u4ee5\u5ffd\u7565\u53cb\u519b\uff0c\u8bbe\u7f6e\u4e86\u91cd\u53e0\u65f6\u5f00\u59cb\u4e8b\u4ef6\uff0c\u56e0\u6b64\u5bf9\u5e94\u7684Projectile\u78b0\u649e\u8bbe\u7f6e\u4e5f\u8981\u8fdb\u884c\u66f4\u6539\uff1a<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240523\/2024052301.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240523\/2024052301.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p>\u5728Player\u4e2d\u5229\u7528\u84dd\u56fe\u5b9e\u73b0\u5728\u5c4f\u5e55\u4e0a\u6253\u5370\u8840\u91cf\u7684\u5b57\u7b26\u4e32\uff0c\u4ee5\u8ba9\u6211\u4eec\u5b9e\u65f6\u4e86\u89e3\u89d2\u8272\u7684\u8840\u91cf\u3002\u8fd9\u4e2a\u84dd\u56fe\u5b9e\u73b0\u5f88\u7b80\u5355\uff0c\u552f\u4e00\u6ce8\u610f\u7684\u662f\u8bbe\u7f6e\u663e\u793a\u65f6\u957f\u4e3a0\u5e76\u5173\u95edPrint to Log\uff0c\u8fd9\u6837\u5c4f\u5e55\u4e0a\u53ea\u4f1a\u51fa\u73b0\u4e00\u4e2a\u6570\u5b57\uff08\u4e8b\u4ef6Tick\u4f1a\u5728\u6bcf\u4e00\u5e27\u90fd\u8c03\u7528\uff09\uff0c\u4e14\u4e0d\u4f1a\u5728Log\u4e2d\u8f93\u51fa\u5927\u91cf\u65e0\u7528\u4fe1\u606f\uff1a<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240523\/2024052302.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240523\/2024052302.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p>\u4eceActor\u6d3e\u751f\u4e00\u4e2a\u540d\u4e3aProjectileDemo\u7684\u84dd\u56fe\u7c7b\uff0c\u4e3a\u5176\u6dfb\u52a0Utility\u4e0b\u7684\u7bad\u5934\u7ec4\u4ef6\u5e76\u8bbe\u7f6e\u4e3a\u6839\uff0c\u5e76\u8bbe\u7f6e\u989c\u8272\uff08UE\u4e2d\u7528\u7ea2\u7eff\u84dd\u8868\u793aXYZ\u8f74\uff0c\u7bad\u5934\u9ed8\u8ba4\u7684\u7ea2\u8272\u4e0eX\u8f74\u76f8\u540c\u5bb9\u6613\u6df7\u4e71\uff09\uff0c\u53bb\u6389\u201c\u6e32\u67d3\u201d\u5c5e\u6027\u4e2d\u7684\u201c\u6e38\u620f\u4e2d\u9690\u85cf\u201d\u3002<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240523\/2024052303.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240523\/2024052303.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240523\/2024052304.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240523\/2024052304.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p>\u7136\u540e\uff0c\u5728\u4e8b\u4ef6\u56fe\u8868\u4e2d\u4ece\u201c\u5f00\u59cb\u8fd0\u884c\u201d\u8282\u70b9\u6dfb\u52a0\u5faa\u73af\u8ba1\u65f6\u5668\uff0c\u5e76\u6dfb\u52a0\u540d\u4e3aOnTimerElapsed\u7684\u81ea\u5b9a\u4e49\u4e8b\u4ef6\uff0c\u8bbe\u7f6e\u8be5\u4e8b\u4ef6\u4e3a\u671d\u7bad\u5934\u65b9\u5411\u53d1\u5c04\u9b54\u6cd5\u7c92\u5b50\uff1b\u540c\u65f6\uff0c\u5728Tick\u8282\u70b9\u540e\u5b9e\u73b0\u5728\u6bcf\u4e00\u5e27\u5c06\u7bad\u5934\u6307\u5411\u73a9\u5bb6\uff0c\u65b9\u5411\u5411\u91cf\u7531\u4e24\u4e2aActor\u7684\u5750\u6807\u76f8\u51cf\u5f97\u5230<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240523\/2024052305.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240523\/2024052305.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240523\/2024052306.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240523\/2024052306.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p>\u8fd0\u884c\u5173\u5361\uff0c\u968f\u7740\u7bad\u5934\u6bcf2\u79d2\u5bf9\u73a9\u5bb6\u8fdb\u884c\u653b\u51fb<\/p>\n<h3 id=\"3-\u8840\u91cfui\">3. \u8840\u91cfUI<\/h3>\n<p>\u73b0\u5728\u624d\u6b63\u5f0f\u8fdb\u5165UMG\u7684\u4f7f\u7528\uff0c\u6211\u4eec\u5c06\u901a\u8fc7UMG\u5236\u4f5c\u89d2\u8272\u7684\u8840\u91cf\u6761\u6765\u5b9e\u65f6\u663e\u793a\u89d2\u8272\u7684\u8840\u91cf\u3002<\/p>\n<p>\u9996\u5148\u5728Content\u6587\u4ef6\u5939\u4e0b\u521b\u5efaUI\u6587\u4ef6\u5939\uff0c\u7528\u4e8e\u5b58\u653e\u6240\u6709UI\u76f8\u5173\u7684\u8d44\u4ea7\u3002\u5728UI\u6587\u4ef6\u5939\u4e2d\u521b\u5efa\u201c\u7528\u6237\u754c\u9762\u201d -&gt; \u201c\u63a7\u4ef6\u84dd\u56fe\u201d\uff0c\u547d\u540d\u4e3aPlayerHealth_Widget\u3002\u53cc\u51fb\u6253\u5f00\u63a7\u4ef6\uff0c\u5c31\u53ef\u4ee5\u770b\u5230UMG\u7684\u64cd\u4f5c\u754c\u9762<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240523\/2024052307.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240523\/2024052307.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p>\u5728\u5de6\u4fa7\u201c\u63a7\u5236\u677f\u201d\u4e2d\u7684\u201c\u901a\u7528\u201d\u5206\u522b\u6dfb\u52a0\u4e00\u4e2a\u8fdb\u5ea6\u6761\u548c\u6587\u672c\uff0c\u5728\u201c\u5c42\u7ea7\u201d\u4e2d\u9009\u62e9\u4efb\u610f\u7ec4\u4ef6\uff0c\u53f3\u952e\u6dfb\u52a0\u6c34\u5e73\u6846\uff0c\u5e76\u5c06\u53e6\u5916\u4e00\u4e2a\u62d6\u5165\u5176\u4e2d\uff0c\u8fd9\u6837\u4e0d\u9700\u8981\u624b\u52a8\u8c03\u6574\u5c31\u53ef\u4ee5\u4f7f\u8fd9\u4e24\u4e2a\u5143\u7d20\u5728\u6c34\u5e73\u4fdd\u6301\u5bf9\u9f50\u3002<\/p>\n<p>\u4f46\u6b64\u65f6UI\u7684\u5185\u5bb9\u8fd8\u662f\u56fa\u5b9a\u7684\uff0cUI\u9700\u8981\u548c\u6570\u636e\u8fdb\u884c\u7ed1\u5b9a\u540e\uff0c\u624d\u80fd\u5b9e\u65f6\u6839\u636e\u6570\u636e\u8fdb\u884c\u663e\u793a<\/p>\n<p>\u9009\u62e9\u6587\u672c\u5757\uff0c\u70b9\u51fb \u201c\u5185\u5bb9\u201d -&gt; \u6587\u672c-&gt; \u7ed1\u5b9a -&gt; \u521b\u5efa\u7ed1\u5b9a\uff0cUE\u4f1a\u5728\u84dd\u56fe\u4e2d\u521b\u5efa\u76f8\u5e94\u51fd\u6570\uff0c\u6211\u4eec\u5c06\u5176\u91cd\u547d\u540d\u4e3aGetHealthText\u3002<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240523\/2024052308.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240523\/2024052308.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p>\u53ef\u4ee5\u770b\u5230\u6570\u5b57\u80fd\u591f\u5b9e\u65f6\u663e\u793a\u8840\u91cf<\/p>\n<h2 id=\"umg-\u4f18\u5316\u8840\u91cf\u6761\">UMG-\u4f18\u5316\u8840\u91cf\u6761<\/h2>\n<h3 id=\"1-\u4f18\u5316\u6267\u884c\u6548\u7387\">1. \u4f18\u5316\u6267\u884c\u6548\u7387<\/h3>\n<p>\u4e0a\u4e00\u8282\u867d\u7136\u5b9e\u73b0\u4e86UI\u7684\u5b9e\u65f6\u66f4\u65b0\uff0c\u4f46\u7ed1\u5b9a\u51fd\u6570\u4f1a\u6bcf\u5e27\u5237\u65b0\u8fdb\u800c\u9020\u6210\u8d44\u6e90\u6d6a\u8d39\uff0c\u6bd5\u7adf\u8840\u91cf\u53d8\u5316\u7684\u901f\u5ea6\u548c\u4e00\u5e27\u6bd4\u8d77\u6765\u8fd8\u662f\u6162\u592a\u591a\u3002\u7c7b\u4f3c\u4e8eCPU\u63a7\u5236\u7684IO\u64cd\u4f5c\u4f1a\u5bfc\u81f4CPU\u6301\u7eed\u5fd9\u7b49\uff08\u4e00\u76f4\u68c0\u67e5\u72b6\u6001\u4f46\u6ca1\u6709\u5b9e\u9645\u4f5c\u7528\uff09\uff0c\u4e00\u79cd\u89e3\u51b3\u529e\u6cd5\u5c31\u662f\u4f7f\u7528\u4e2d\u65ad\u63a7\u5236\u6765\u89e3\u653eCPU\u3002\u7c7b\u4f3c\u7684\uff0c\u5728\u8bbe\u8ba1\u6a21\u5f0f\u4e2d\u6709\u4e00\u79cd\u8ba2\u9605-\u53d1\u5e03\uff08\u89c2\u5bdf\u8005\uff09\u6a21\u5f0f\u5c31\u5f88\u9002\u5408\u8fd9\u6837\u7684\u573a\u666f\uff1aUI\u7ec4\u4ef6\u4e0d\u518d\u81ea\u884c\u6bcf\u5e27\u67e5\u8be2\u8840\u91cf\uff0c\u800c\u662f\u8ba9\u8840\u91cf\u81ea\u5df1\u5728\u53d1\u751f\u53d8\u5316\u7684\u540c\u65f6\u901a\u77e5UI\u8fdb\u884c\u5237\u65b0\u3002<\/p>\n<p>\u5728UE\u4e2d\u53ef\u4f7f\u7528\u591a\u64ad\u59d4\u6258\u81ea\u5b9a\u4e49\u4e8b\u4ef6\u6765\u5b9e\u73b0\uff0c\u5b83\u7684\u4f5c\u7528\u4e3b\u8981\u662f\u53ea\u9700\u8c03\u7528\u4e00\u6b21Broadcast\u51fd\u6570\u5c31\u53ef\u4f7f\u6240\u6709\u7ed1\u5b9a\u7684\u5bf9\u8c61\u89e6\u53d1\u76f8\u5e94\u529f\u80fd\u3002\u5728\u4e0a\u4e00\u8282\u8f6c\u5230OnComponentBeginOverlap\u7684\u5b9a\u4e49\u65f6\uff0c\u6211\u4eec\u5df2\u7ecf\u770b\u5230\u4e8b\u4ef6\u5728UE\u4e2d\u7684\u4ee3\u7801\u7ed3\u6784\uff0c\u8fd9\u91cc\u6211\u4eec\u5c06\u4f7f\u7528\u7c7b\u4f3c\u7684\u65b9\u6cd5\u6765\u5b9e\u73b0\u4e00\u4e2a\u81ea\u5b9a\u4e49\u4e8b\u4ef6\u3002<\/p>\n<pre><code class=\"language-cpp\" lang=\"cpp\">\/\/SAttributeComponent.h\n\n#pragma once\n\n#include \"CoreMinimal.h\"\n#include \"Components\/ActorComponent.h\"\n#include \"SAttributeComponent.generated.h\"\n\nDECLARE_DYNAMIC_MULTICAST_DELEGATE_FourParams(FOnHealthChanged,AActor*,InstigatorActor,USAttributeComponent*,OwningComp,float,NewHealth,float,Delta);\n\n\nUCLASS( ClassGroup=(Custom), meta=(BlueprintSpawnableComponent) )\nclass ACTIONROGUELIKE_API USAttributeComponent : public UActorComponent\n{\n\tGENERATED_BODY()\n\npublic:\t\n\t\/\/ Sets default values for this component's properties\n\tUSAttributeComponent();\n\nprotected:\n\n\tUPROPERTY(EditDefaultsOnly,BlueprintReadOnly,Category=\"Attributes\")\n\tfloat Health;\n\n\n\npublic:\n\t\n\tUFUNCTION(BlueprintCallable)\n\tbool IsAlive() const;\n\n\n\t\n\t\n\tUPROPERTY(BlueprintAssignable)\n\tFOnHealthChanged OnHealthChanged;\n\t\n\tUFUNCTION(BlueprintCallable,Category=\"Attributes\")\n\tbool ApplyHealthChange(float Delta);\n\t\n\n};\n\n<\/code><\/pre>\n<pre><code class=\"language-cpp\" lang=\"cpp\">\/\/SAttributeComponent.cpp\n\n\n#include \"SAttributeComponent.h\"\n\n\/\/ Sets default values for this component's properties\nUSAttributeComponent::USAttributeComponent()\n{\n\t\/\/ Set this component to be initialized when the game starts, and to be ticked every frame.  You can turn these features\n\t\/\/ off to improve performance if you don't need them.\n\tPrimaryComponentTick.bCanEverTick = true;\n\n\t\/\/ ... \n\tHealth = 100;\n}\n\nbool USAttributeComponent::IsAlive() const\n{\n\treturn Health&gt;0.0f;\n}\n\n\nbool USAttributeComponent::ApplyHealthChange(float Delta)\n{\n\tHealth += Delta;\n\n\tOnHealthChanged.Broadcast(nullptr,this,Health,Delta);\n\treturn true;\n}\n<\/code><\/pre>\n<p>\u6211\u4eec\u76f4\u63a5\u5728PlayerHealth_Widget\u7684\u4e8b\u4ef6\u56fe\u8868\u4e2d\u7f16\u5199\u84dd\u56fe\u7a0b\u5e8f\uff0c\u5728\u201c\u4e8b\u4ef6\u6784\u9020\u201d\u4e00\u5f00\u59cb\u5c31\u5c06\u5c06\u73a9\u5bb6Pawn\u7684AttributeComp\u7ed1\u5b9a\u5230OnHealthChanged\u4e8b\u4ef6\u4e0a\u3002\u5728\u6bcf\u6b21\u4e8b\u4ef6\u89e6\u53d1\u65f6\u8ba1\u7b97\u5f53\u524d\u8840\u91cf\u4e0e\u73a9\u5bb6\u9ed8\u8ba4\u8840\u91cf\u7684\u767e\u5206\u6bd4\uff0c\u5e76\u8bbe\u7f6e\u7ed9\u8fdb\u5ea6\u6761\u3002<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240524\/2024052401.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240524\/2024052401.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<h3 id=\"2-\u7b80\u6613\u8109\u51b2\u52a8\u753b\">2. \u7b80\u6613\u8109\u51b2\u52a8\u753b<\/h3>\n<p>\u8fd9\u90e8\u5206\u901a\u8fc7\u5728UI\u4e2d\u6dfb\u52a0\u8840\u91cf\u51cf\u5c11\u65f6\u7684\u8109\u51b2\u52a8\u753b\uff0c\u6765\u4e86\u89e3UMG\u4e2d\u52a8\u753b\u7684\u4f7f\u7528\u3002<\/p>\n<p>\u5728\u5de6\u4e0b\u89d2\u7684\u201c\u52a8\u753b\u201d\u4e2d\u70b9\u51fb\u201c\u6dfb\u52a0\u52a8\u753b\u201d\uff0c\u547d\u540d\u4e3aPulseHealthAnim\uff0c\u70b9\u51fb\u52a8\u753b\uff0c\u5e76\u9009\u62e9\u65c1\u8fb9\u7684\u201c\u65f6\u95f4\u8f74\u201d\u3002\u9009\u62e9\u663e\u793a\u8840\u91cf\u6570\u5b57\u7684\u6587\u672c\u5757\uff0c\u5728\u7ec6\u8282\u4e2d\u4e0b\u6ed1\u627e\u5230\u201c\u6e32\u67d3\u53d8\u6362\u201d\uff0c\u5c06\u7f29\u653e\u6dfb\u52a0\u4e3a\u5173\u952e\u5e27\u3002<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240524\/2024052402.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240524\/2024052402.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<h2 id=\"\u5341\u5b57\u51c6\u661f\">\u5341\u5b57\u51c6\u661f<\/h2>\n<h3 id=\"1-\u521b\u5efa\u51c6\u661fui\">1. \u521b\u5efa\u51c6\u661fUI<\/h3>\n<p>\u7ed3\u5408\u4e4b\u524d\u6587\u7ae0\u5173\u4e8eUMG\u7684\u5185\u5bb9\uff0c\u6211\u4eec\u53ef\u4ee5\u5341\u5206\u5feb\u901f\u5730\u521b\u5efa\u4e00\u4e2a\u4e4b\u5b50\u51c6\u661f\u7684UI\u3002<\/p>\n<p>\u9996\u5148\uff0c\u6211\u4eec\u9700\u8981\u8c03\u6574\u4e00\u4e0b\u6444\u50cf\u673a\u7684\u4f4d\u7f6e\u3002\u5982\u679c\u6211\u4eec\u73b0\u5728\u8fd0\u884c\u5173\u5361\uff0c\u4f1a\u53d1\u73b0\u6e38\u620f\u89d2\u8272\u4f4d\u4e8e\u955c\u5934\u7684\u6b63\u4e2d\u95f4\uff0c\u8fd9\u65e0\u7591\u4f1a\u5728\u64cd\u4f5c\u4e2d\u906e\u6321\u73a9\u5bb6\u7684\u5b9e\u73b0\u3002\u56de\u5fc6\u4e00\u4e0b\u5404\u79cd\u7b2c\u4e09\u4eba\u79f0\u89c6\u89d2\u7684\u6e38\u620f\uff0c\u4eba\u7269\u901a\u5e38\u4f4d\u4e8e\u753b\u9762\u7684\u504f\u5de6\u6216\u504f\u53f3\u7684\u4f4d\u7f6e\u3002<\/p>\n<p>\u8fdb\u5165Player\u7684\u84dd\u56fe\u7f16\u8f91\u5668\uff0c\u9009\u62e9\u5f39\u7c27\u81c2\u7ec4\u4ef6\uff08SpringArmComp\uff09\uff0c\u8c03\u6574\u5176\u4e2d\u7684\u201c\u6444\u50cf\u673a\u201d\u5c5e\u6027\u3002\u901a\u8fc7\u8bbe\u7f6e\u201c\u957f\u5ea6\u201d\u53ef\u4ee5\u53d8\u5316\u6444\u50cf\u673a\u4e0e\u89d2\u8272\u7684\u8ddd\u79bb\uff0c\u8bbe\u7f6e\u201c\u63d2\u69fd\u504f\u79fb\u201d\u4ece\u800c\u5728\u6539\u53d8\u76f8\u673a\u4f4d\u7f6e\u65f6\u4fdd\u6301\u5f39\u7c27\u5730\u78b0\u649e\u68c0\u6d4b\u7684\u529f\u80fd\u3002\u8fd9\u91cc\u5927\u5bb6\u53ef\u4ee5\u6839\u636e\u81ea\u5df1\u7684\u559c\u597d\u81ea\u884c\u8c03\u8282\u89c6\u89d2\uff0c\u6211\u5728\u8fd9\u4e2a\u5730\u65b9\u7684\u8bbe\u7f6e\u5982\u56fe<\/p>\n<pre><code>\/\/2024.10.11\ntarget arm length\u4fee\u6539\u4e3a 300\nsocket offset \u4e3a 0 90 0\n<\/code><\/pre>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240524\/2024052403.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240524\/2024052403.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p>\u63a5\u4e0b\u6765\uff0c\u5728UI\u6587\u4ef6\u5939\u4e0b\u521b\u5efaCrosshair_Widget\u63a7\u4ef6\u84dd\u56fe\uff0c\u5e76\u6dfb\u52a0\u4e00\u4e2a\u56fe\u50cf\u63a7\u4ef6\u3002\u901a\u5e38\uff0c\u5341\u5b57\u51c6\u661f\u56fa\u5b9a\u5728\u5c4f\u5e55\u7684\u6b63\u4e2d\u592e\u3002\u56e0\u6b64\uff0c\u6211\u4eec\u8bbe\u7f6e\u56fe\u50cf\u7684\u951a\u70b9\u4e3a\u5c4f\u5e55\u4e2d\u95f4\u70b9\uff0c\u8bbe\u7f6e\u4f4d\u7f6eX\u3001Y\u4e3a0\uff0c\u5e76\u628aX\u4e0eY\u7684\u5bf9\u9f50\u5747\u8bbe\u7f6e\u4e3a0.5\u3002\u9002\u5f53\u8c03\u8282\u5c3a\u5bf8X\u3001Y\u5c5e\u6027\uff0c\u4f7f\u51c6\u661f\u7684\u5927\u5c0f\u5408\u9002\u3002<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240524\/2024052404.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240524\/2024052404.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p>\u56de\u5230Player\u84dd\u56fe\u4e2d\uff0c\u5728\u4e4b\u524d\u6dfb\u52a0\u8840\u91cf\u6761\u7684\u4f4d\u7f6e\u518d\u628a\u51c6\u661f\u52a0\u4e0a\uff0c\u540c\u6837\u6dfb\u52a0\u5230\u89c6\u53e3\u3002\u7136\u540e\u8fd0\u884c\u5173\u5361\uff0c\u5c31\u53ef\u4ee5\u770b\u5230\u5c4f\u5e55\u6b63\u4e2d\u95f4\u6709\u4e00\u4e2a\u7b80\u5355\u7684\u51c6\u661f\u4e86\u3002<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240524\/2024052405.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240524\/2024052405.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<h3 id=\"2-\u8c03\u6574\u53d1\u5c04\u4ee3\u7801\">2. \u8c03\u6574\u53d1\u5c04\u4ee3\u7801<\/h3>\n<p>\u5728\u6b64\u524d\u6587\u7ae0\u4e2d\uff0c\u6211\u5728SCharacter\u4e2d\u7684PrimaryAttack\u4f7f\u7528\u4e86GetActorRotation\u51fd\u6570\u6765\u83b7\u53d6\u89d2\u8272\u7684\u65cb\u8f6c\uff0c\u4ece\u800c\u4f7f\u7c92\u5b50\u4ee5\u89d2\u8272\u7684\u6b63\u524d\u65b9\u53d1\u5c04<\/p>\n<p>\u5728\u6dfb\u52a0\u5341\u5b57\u51c6\u661f\u540e\uff0c\u6211\u4eec\u80af\u5b9a\u9700\u8981\u7c92\u5b50\u6cbf\u7740\u51c6\u661f\u53d1\u5c04\uff0c\u5373\u6cbf\u7740\u73a9\u5bb6\u7684\u89c6\u89d2\u53d1\u5c04\u3002\u6240\u4ee5\uff0c\u6211\u4eec\u53ea\u7528\u628aPrimaryAttack_TimeElapsed\u51fd\u6570\u4e2d\u7684GetActorRotation()\u6362\u6210GetControlRotation()\u5373\u53ef\u3002\u6b64\u5916\uff0c\u5728\u5f53\u524d\u9879\u76ee\u4e0b\uff0c\u6211\u4f7f\u7528UE_LOG\u53d1\u73b0GetControlRotation()\u548cGetViewRotation()\u7684\u503c\u76f8\u7b49\uff0c\u6240\u4ee5\u540e\u9762\u5c31\u7edf\u4e00\u7528\u524d\u8005\u3002<\/p>\n<p>\u4f46\u8fd9\u6837\u7684\u66f4\u6539\u53ef\u80fd\u4f1a\u5e26\u6765\u4e24\u4e2a\u95ee\u9898\uff1a\u4e00\u662f\u53cd\u65b9\u5411\uff08\u6b63\u8138\u9762\u5411\u6444\u50cf\u5934\uff09\u53d1\u5c04\u65f6\u53ef\u80fd\u4f1a\u6253\u4e2d\u89d2\u8272\u81ea\u5df1\uff0c\u8fd9\u53d6\u51b3\u4e8e\u9b54\u6cd5\u7c92\u5b50\u84dd\u56fe\u7684\u8bbe\u7f6e\uff1b\u4e8c\u662f\u51fb\u4e2d\u7684\u4f4d\u7f6e\u4e0e\u51c6\u661f\u8fd8\u662f\u5b58\u5728\u504f\u5dee\uff0c\u5c24\u5176\u5728\u89d2\u8272\u671d\u5411\u5de6\u8fb9\u7684\u65f6\u5019\uff08\u89d2\u8272\u53f3\u624b\u53d1\u5c04\uff09\uff1a<\/p>\n<p>\u7b2c\u4e00\u4e2a\u95ee\u9898\u5f88\u5bb9\u6613\u7406\u89e3\uff0c\u53cd\u65b9\u5411\u53d1\u5c04\u7684\u9b54\u6cd5\u7c92\u5b50\u68c0\u6d4b\u5230\u4e86\u81ea\u5df1\u89d2\u8272\u7684actor\uff0c\u5c31\u89e6\u53d1\u4e86OnActorOverlap\u4e8b\u4ef6\u3002\u6211\u4eec\u5df2\u7ecf\u4f7f\u7528\u4e86Instigator\u5224\u65ad\u662f\u4e0d\u662f\u73a9\u5bb6\u81ea\u5df1\uff0c\u6240\u4ee5\u7b2c\u4e00\u4e2a\u95ee\u9898\u5e76\u6ca1\u6709\u9047\u5230\u3002<\/p>\n<p>\u4f46\u6b64\u5904\u8fd8\u8981\u6ce8\u610f\uff0c\u7c92\u5b50\u867d\u7136\u53ef\u4ee5\u7a7f\u8fc7\u89d2\u8272\uff0c<strong>\u4f46\u4ecd\u4f1a\u5bf9\u89d2\u8272\u81ea\u5df1\u9020\u6210\u4f24\u5bb3<\/strong>\u3002\u6211\u4eec\u63a7\u5236\u7c92\u5b50\u9500\u6bc1\u7684\u529f\u80fd\u662f\u5728\u84dd\u56fe\u4e2d\u5b9e\u73b0\u7684\uff0c\u800c\u63a7\u5236\u4f24\u5bb3\u7684\u529f\u80fd\u662f\u5728\u4ee3\u7801\u4e2d\u5b9e\u73b0\u7684\uff08\u6709\u70b9\u6df7\u4e71\uff0c\u4f46\u8fd9\u662f\u8bfe\u7a0b\u51fa\u4e8e\u6559\u5b66\u76ee\u7684\u7684\u8bbe\u8ba1)<\/p>\n<p>\u6240\u4ee5\u6211\u4eec\u8fd8\u9700\u8981\u518dC++\u4e2d\u6dfb\u52a0\u5ffd\u7565\u5bf9\u73a9\u5bb6\u9020\u6210\u4f24\u5bb3\u7684\u4ee3\u7801\u3002\u4ee3\u7801\u5982\u4e0b\u6240\u793a\uff0c\u5176\u5b9e\u5c31\u662f\u5728\u4e4b\u524d\u7684\u57fa\u7840\u4e0a\u5728\u7b2c\u4e00\u4e2aif\u5904\u6dfb\u52a0\u4e86\u5bf9Instigator\u7684\u5224\u65ad\uff0c\u548c\u84dd\u56fe\u4e2d\u7684\u903b\u8f91\u662f\u4e00\u6837\u7684\u3002<\/p>\n<pre><code class=\"language-cpp\" lang=\"cpp\">void ASMagicProjectile::OnActorOverlap(UPrimitiveComponent* OverlappedComponent, AActor* OtherActor,\n\tUPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult&amp; SweepResult)\n{\n\tif(OtherActor &amp;&amp; OtherActor != GetInstigator())\n\t{\n\t\tUSAttributeComponent* AttributeComp = Cast&lt;USAttributeComponent&gt;(OtherActor-&gt;GetComponentByClass(USAttributeComponent::StaticClass()));\n\t\tif(AttributeComp)\n\t\t{\n\t\t\tAttributeComp-&gt;ApplyHealthChange(-DamageAmount);\n\n\t\t\tDestroy();\n\t\t}\n\t}\n}\n<\/code><\/pre>\n<p>\u7b2c\u4e8c\u4e2a\u95ee\u9898\u5c31\u7a0d\u5fae\u590d\u6742\u4e00\u4e9b\uff0c\u6211\u4e2a\u4eba\u662f\u8fd9\u6837\u7406\u89e3\u7684\uff1a\u7c92\u5b50\u53d1\u5c04\u7684\u65b9\u5411\u662f\u89d2\u8272\u7684\u76f8\u673a\u65b9\u5411\uff0c\u800c\u7c92\u5b50\u53d1\u5c04\u7684\u4f4d\u7f6e\u662f\u89d2\u8272\u53f3\u624b\u3002\u4e5f\u5c31\u662f\u8bf4\uff0c\u53ea\u8981\u53d1\u5c04\u4f4d\u7f6e\u4e0d\u5728\u5c4f\u5e55\u6b63\u4e2d\u5fc3\uff08\u4e5f\u5c31\u662f\u76f8\u673a\u7684\u4f4d\u7f6e\uff09\uff0c\u6700\u540e\u7c92\u5b50\u7684\u843d\u70b9\u4e00\u5b9a\u5b58\u5728\u504f\u79fb\uff0c\u4e14\u8ddd\u79bb\u5c4f\u5e55\u4e2d\u95f4\u8d8a\u8fdc\u504f\u79fb\u8d8a\u5927\u3002<\/p>\n<p>\u4e00\u79cd\u6700\u7b80\u5355\u7684\u89e3\u51b3\u529e\u6cd5\u662f\uff0c\u76f4\u63a5\u8bbe\u7f6e\u9b54\u6cd5\u7c92\u5b50\u7684\u53d1\u5c04\u70b9\u5728\u5c4f\u5e55\u6b63\u4e2d\u95f4\uff0c\u4e5f\u5c31\u662f\u76f8\u673a\u4f4d\u7f6e\u3002\u8fd9\u4e2a\u65b9\u6cd5\u53ea\u4fee\u6539\u9700\u8981\u4e00\u884c\u4ee3\u7801\uff0c\u4e5f\u5c31\u662f\u628a\u76f8\u673a\u7684Rotation\u548cLocation\u90fd\u8d4b\u7ed9SpawnTM\uff1a<\/p>\n<pre><code class=\"language-cpp\" lang=\"cpp\">FTransform SpawnTM = FTransform(GetControlRotation(), CameraComp-&gt;GetComponentLocation());\n<\/code><\/pre>\n<p>\u6beb\u65e0\u7591\u95ee\u5b9e\u73b0\u4e86\u6307\u54ea\u6253\u54ea\u3002\u5982\u679c\u8981\u4f7f\u7528\u8fd9\u4e2a\u65b9\u6cd5\uff0c\u4e5f\u8bb8\u5728\u6bcf\u6b21\u653b\u51fb\u65f6\u628a\u89d2\u8272\u65cb\u8f6c\u5230\u671d\u524d\uff0c\u7136\u540e\u8981\u7cbe\u8c03\u89d2\u8272\u5728\u955c\u5934\u4e2d\u7684\u4f4d\u7f6e\uff0c\u4ee5\u53ca\u9b54\u6cd5\u7c92\u5b50\u6cbf\u7740GetControlRotation\u8fd9\u4e2a\u65b9\u5411\u7684\u5177\u4f53\u751f\u6210\u4f4d\u7f6e\uff0c\u4f7f\u5176\u653b\u51fb\u65f6\u624b\u90e8\u521a\u597d\u548c\u53d1\u5c04\u7c92\u5b50\u7684\u4f4d\u7f6e\u91cd\u5408<\/p>\n<p>\u53e6\u4e00\u79cd\u5f88\u5de7\u5999\u7684\u65b9\u6cd5\uff0c\u662f\u5148\u68c0\u6d4b\u518d\u53d1\u5c04\u3002\u5728\u53d1\u5c04\u9b54\u6cd5\u7c92\u5b50\u524d\uff0c\u5148\u7528\u5c04\u7ebf\u68c0\u6d4b\u7684\u65b9\u6cd5\uff0c\u68c0\u6d4b\u4e00\u4e2a\u4ece\u76f8\u673a\u4f4d\u7f6e\u6cbf\u7740\u5176\u671d\u5411\u7684\u8f83\u5927\u7684\u5c04\u7a0b\u8303\u56f4\u5185\uff0c\u6709\u6ca1\u6709\u547d\u4e2d\u5bf9\u8c61\u3002\u5982\u679c\u68c0\u6d4b\u5230\u547d\u4e2d\uff0c\u8fd4\u56de\u547d\u4e2d\u7684\u4f4d\u7f6e\uff0c\u5e76\u5229\u7528\u5411\u91cf\u52a0\u6cd5\u5f97\u5230\u8fd9\u6b21\u653b\u51fb\u7684\u65b9\u5411\u5411\u91cf\uff0c\u7136\u540e\u518d\u53d1\u5c04\u9b54\u6cd5\u7c92\u5b50\uff1b\u5982\u679c\u4e0d\u547d\u4e2d\uff0c\u6700\u540e\u5c31\u4f1a\u843d\u5230\u6cbf\u7740\u76f8\u673a\uff0c\u8ddd\u79bb\u4e3a\u5c04\u7a0b\u7684\u90a3\u4e2a\u70b9\u4e0a\u3002\u8fd9\u79cd\u65b9\u6cd5\u6bcf\u6b21\u653b\u51fb\u7684\u65b9\u5411\u5411\u91cf\u662f\u4e0d\u76f8\u540c\u7684\uff0c\u662f\u5224\u5b9a\u5b8c\u4f4d\u7f6e\u540e\u518d\u8ba1\u7b97\u7684\u3002<\/p>\n<p>\u5b9e\u73b0\u65b9\u6cd5\u548c\u4e4b\u524d\u7b2c7\u8282\u6253\u5f00\u7bb1\u5b50\u7684\u5c04\u7ebf\u68c0\u6d4b\u5f88\u7c7b\u4f3c\uff0c\u8fd9\u91cc\u4f7f\u7528\u5f62\u72b6\u68c0\u6d4b\u6765\u589e\u52a0\u68c0\u6d4b\u7684\u7a7a\u95f4\uff0c\u6838\u5fc3\u4ee3\u7801\u5982\u4e0b\uff1a<\/p>\n<pre><code class=\"language-cpp\" lang=\"cpp\">void ASCharacter::SpawnProjectile(TSubclassOf&lt;AActor&gt; ClassToSpawn)\n{\n\tif(ensure(ClassToSpawn))\n\t{\n\t\t\/\/ \u83b7\u53d6\u6a21\u578b\u53f3\u624b\u4f4d\u7f6e\n\t\tFVector RightHandLoc = GetMesh()-&gt;GetSocketLocation(\"Muzzle_01\");\n \t\n\t\t\/\/ \u68c0\u6d4b\u8ddd\u79bb\u4e3a 5000 cm = 50 m\n\t\tFVector TraceStart = CameraComp-&gt;GetComponentLocation();\n\t\tFVector TraceEnd = TraceStart + ( GetControlRotation().Vector() * 5000 );\n \t\n\t\t\/\/ \u68c0\u6d4b\u534a\u5f84\n\t\tFCollisionShape Shape;\n\t\tShape.SetSphere(20.0f);\n \t\n\t\t\/\/ \u4e0d\u8981\u68c0\u6d4b\u81ea\u5df1\u89d2\u8272\n\t\tFCollisionQueryParams Params;\n\t\tParams.AddIgnoredActor(this);\n \t\n\t\t\/\/ \u78b0\u649e\u8bbe\u7f6e\n\t\tFCollisionObjectQueryParams ObjParams;\n\t\tObjParams.AddObjectTypesToQuery(ECC_WorldStatic);\n\t\tObjParams.AddObjectTypesToQuery(ECC_WorldDynamic);\n\t\tObjParams.AddObjectTypesToQuery(ECC_Pawn);\n \t\n\t\tFHitResult Hit;\n\t\tif (GetWorld()-&gt;SweepSingleByObjectType(Hit, TraceStart, TraceEnd, FQuat::Identity, ObjParams, Shape, Params)) {\n\t\t\tTraceEnd = Hit.ImpactPoint;\n\t\t}\n\t\t\t\n\t\t\/\/ \u5c3e\u5411\u91cf - \u5934\u5411\u91cf = \u65b9\u5411\u5411\u91cf eg\uff1a\u8d77\u70b9(0,0) \u7ec8\u70b9(1,1)\uff0c\u65b9\u5411\u5411\u91cf\u4e3a(1,1)\n\t\tFRotator ProjRotation = FRotationMatrix::MakeFromX(TraceEnd - RightHandLoc).Rotator();\n\t\t\/\/ \u671d\u5411\u68c0\u6d4b\u5230\u7684\u843d\u70b9\u65b9\u5411\uff0c\u5728\u89d2\u8272\u7684\u53f3\u624b\u4f4d\u7f6e\u751f\u6210\n\t\tFTransform SpawnTM = FTransform(ProjRotation, RightHandLoc);\n \t\n\t\t\/\/ \u6b64\u5904\u8bbe\u7f6e\u78b0\u649e\u68c0\u6d4b\u89c4\u5219\u4e3a\uff1a\u5373\u4f7f\u78b0\u649e\u4e5f\u603b\u662f\u751f\u6210\n\t\tFActorSpawnParameters SpawnParams;\n\t\tSpawnParams.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn;\n\t\tSpawnParams.Instigator = this;\n\n\t\t\/*\n\t\tGetWorld()-&gt;SpawnActor&lt;AActor&gt;(ProjectileClass, SpawnTM, SpawnParams);\n\t\t*\/\n\n\t\tGetWorld()-&gt;SpawnActor&lt;AActor&gt;(ClassToSpawn,SpawnTM,SpawnParams);\n\t}\n\t\n}\n<\/code><\/pre>\n<h2 id=\"\u4f24\u5bb3\u6570\u503c\">\u4f24\u5bb3\u6570\u503c<\/h2>\n<h3 id=\"1-\u521b\u5efaui\">1. \u521b\u5efaUI<\/h3>\n<p>\u8981\u663e\u793a\u6570\u5b57\uff0c\u9700\u8981\u5229\u7528UMG\u6765\u5b9e\u73b0\u3002\u521b\u5efaUI\u7684\u90e8\u5206\u5341\u5206\u7b80\u5355\uff0c\u5728Ui\u6587\u4ef6\u5939\u4e0b\u521b\u5efa\u4e00\u4e2a\u65b0\u7684DamagePopup_Widget\u63a7\u4ef6\u84dd\u56fe\uff0c\u53ea\u6dfb\u52a0\u4e00\u4e2a\u6587\u672c\u6846\u5373\u53ef\u3002\u8bbe\u7f6e\u6587\u672c\u6846\u7684\u4f4d\u7f6e\u548c\u9ed8\u8ba4\u503c\u5982\u4e0b\uff0c\u9700\u8981\u6ce8\u610f\u8bbe\u7f6e\u6587\u672c\u6846\u201cIs Variable\u201d\u4fbf\u4e8e\u540e\u7eed\u8bbf\u95ee\u3002<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240524\/2024052406.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240524\/2024052406.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p>\u4f24\u5bb3\u6570\u503c\u4f1a\u663e\u793a\u5728\u9b54\u6cd5\u7c92\u5b50Overlap\u4e14\u6709\u8840\u91cf\uff08\u5373\u6709AttributeComp\uff09\u7684\u5bf9\u8c61\u4e0a\uff0c\u56e0\u6b64\u6211\u4eec\u9700\u8981\u4e00\u4e2a\u53d8\u91cf\u6765\u8bb0\u5f55\u8fd9\u4e2a\u5bf9\u8c61\u3002\u5728\u201c\u56fe\u8868\u201d\u4e2d\u521b\u5efa\u4e00\u4e2a\u53d8\u91cfAttachTo\uff0c\u53d8\u91cf\u7c7b\u578b\u8bbe\u7f6e\u4e3aActor\uff0c\u7136\u540e\u52fe\u9009\u5176\u201c\u53ef\u7f16\u8f91\u5b9e\u4f8b\u201d\u548c\u201c\u751f\u6210\u65f6\u516c\u5f00\u201d\uff0c\u4ece\u800c\u66b4\u9732\u8be5\u53d8\u91cf\u65b9\u4fbf\u6211\u4eec\u5728\u5176\u4ed6\u84dd\u56fe\u4f20\u9012\u8fd9\u4e2a\u53d8\u91cf\u7684\u503c\u3002\u968f\u540e\u521b\u5efa\u5982\u4e0b\u84dd\u56fe\uff1a<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240524\/2024052407.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240524\/2024052407.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p>\u5b9e\u73b0\u4e86\u6570\u5b57UI\u7684\u663e\u793a\uff0c\u5176\u4e2d\u7684\u5173\u952e\u70b9\u5728\u4e8e\u5229\u7528\u201c\u5c06\u573a\u666f\u6295\u5c04\u5230\u5c4f\u5e55\uff08Project World To Screen\uff09\u201d\u8282\u70b9\u5b9e\u73b03\u7ef4\u7684\u6e38\u620f\u5185\u4e16\u754c\u5750\u6807\u5bf9\u5e942\u7ef4\u5c4f\u5e55\u5750\u6807\u7684\u8f6c\u6362\uff0c\u5e76\u901a\u8fc7\u201c\u83b7\u53d6\u89c6\u53e3\u7f29\u653e\u201d\u6765\u5f97\u5230\u5c4f\u5e55\u7684\u7f29\u653e\u6bd4\u4f8b\uff0c\u4ece\u800c\u77eb\u6b63UI\u663e\u793a\u7684\u4f4d\u7f6e\u3002<\/p>\n<p>\u540c\u65f6\uff0c\u6211\u4eec\u5e0c\u671b\u6570\u503cUI\u5728\u663e\u793a\u4e00\u5b9a\u65f6\u95f4\u540e\u81ea\u52a8\u6d88\u5931\uff1a<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240524\/2024052408.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240524\/2024052408.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<h3 id=\"2-\u8c03\u7528ui\">2. \u8c03\u7528UI<\/h3>\n<p>\u56de\u987e\u4e4b\u524d\u7684\u5185\u5bb9\uff0c\u5728SAttributeComponent\u7c7b\u4e2d\u58f0\u660e\u4e86OnHealthChanged\u4e8b\u4ef6\uff0c\u5373\u6240\u6709\u5e26\u6709\u8840\u91cf\u5c5e\u6027\u7684\u5bf9\u8c61\u90fd\u53ef\u4ee5\u89e6\u53d1\u8fd9\u4e2a\u4e8b\u4ef6\uff0c\u800c\u8fd9\u4e9b\u5e26\u6709\u8840\u91cf\u7684\u5bf9\u8c61\u521a\u597d\u9700\u8981\u663e\u793a\u4f24\u5bb3\u6570\u503c\u3002\u56e0\u6b64\uff0c\u6211\u4eec\u53ef\u4ee5\u5229\u7528\u8fd9\u4e2a\u4e8b\u4ef6\u6765\u521b\u5efa\u663e\u793aUI\u3002<\/p>\n<p>\u6253\u5f00TargetDummyBP\u84dd\u56fe\uff0c\u8fdb\u884c\u63a7\u4ef6\u7684\u521b\u5efa\u3002\u76f8\u5173\u65b9\u6cd5\u5df2\u5728UMG\u63d0\u8fc7\uff0c\u6545\u4e0d\u518d\u8d58\u8ff0\u3002\u552f\u4e00\u9700\u8981\u6ce8\u610f\u5230\uff0c\u4e4b\u524d\u5c06AttachTo\u66b4\u9732\u540e\uff0c\u53ef\u4ee5\u5728\u6b64\u5904\u4f20\u5165Attach\u7684\u5bf9\u8c61\u3002<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240524\/2024052409.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240524\/2024052409.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p>\u6b64\u65f6\uff0c\u6309\u7167\u8bfe\u7a0b\u4e2d\u7684\u8fdb\u5ea6\u5e94\u8be5\u5df2\u7ecf\u5b9e\u73b0\u4e86\u663e\u793a\u6570\u5b57\u7684\u6548\u679c\uff0c\u4f46\u6211\u5728\u8fd0\u884c\u65f6\u5374\u6ca1\u6709\u53cd\u5e94\u3002<\/p>\n<p>\u4e4b\u524d\u8ddf\u7740\u8bfe\u7a0b\u5b9e\u73b0\u7684\u903b\u8f91\u5341\u5206\u6df7\u4e71\uff1a\u9b54\u6cd5\u7c92\u5b50\u9020\u6210\u4f24\u5bb3\u5728\u4ee3\u7801\u4e2d\u5b9e\u73b0\uff0c\u4f7f\u7528Overlap\u4e8b\u4ef6\uff0c\u4e14\u5305\u542b\u4e86Destroy\u8bed\u53e5\uff1b\u9b54\u6cd5\u7c92\u5b50\u7206\u70b8\u6548\u679c\u5728\u84dd\u56fe\u4e2d\u5b9e\u73b0\uff0c\u4f7f\u7528\u4e86OnActorHit\u4e8b\u4ef6\u3002\u8fd9\u5c06\u5bfc\u81f4\u9b54\u6cd5\u7c92\u5b50\u5728\u78b0\u649e\u5230Gideon\u89d2\u8272\u540e\u53ea\u6263\u8840\uff0c\u800c\u4e0d\u80fd\u64ad\u653e\u7206\u70b8\u6548\u679c\u3002\u56e0\u6b64\u6211\u5728MagicProjectile\u4e2d\u6dfb\u52a0\uff08\u4e0d\u662f\u66ff\u6362\uff09\u4e86Overlap\u4e8b\u4ef6\u6765\u89e6\u53d1\uff0c\u89e3\u51b3\u4e86\u4e00\u4e2a\u5386\u53f2\u9057\u7559bug\u3002<\/p>\n<h2 id=\"\u521b\u5efa\u6700\u5927\u751f\u547d\u503chealthmax\">\u521b\u5efa\u6700\u5927\u751f\u547d\u503c(HealthMax)<\/h2>\n<p>\u5728\u6e38\u620f\u540e\u671f\u6211\u4eec\u5982\u679c\u9700\u8981\u9891\u7e41\u7684\u4fee\u6539\u8840\u91cf\u7684\u503c\uff0c\u5c31\u9700\u8981\u53bb\u8bbe\u7f6e\u6700\u5927\u751f\u547d\u503c\uff0c\u907f\u514d\u8840\u91cf\u8d85\u51fa\u6211\u4eec\u8bbe\u7f6e\u7684\u503c<\/p>\n<pre><code class=\"language-cpp\" lang=\"cpp\">\/\/SAttributeComponent.h \n\/\/\u65b0\u6dfb\u52a0\u4e0b\u5217\u5185\u5bb9\nprotected:\nUPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = \"Attributes\")\n\tfloat HealthMax;\n\npublic:\nUFUNCTION(BlueprintCallable)\n\tbool IsFullHealth() const;\n\n\tUFUNCTION(BlueprintCallable)\n\tfloat GetHealthMax() const;\n\n\/\/SAttributeComponent.cpp\nUSAttributeComponent::USAttributeComponent()\n{\n\tHealthMax = 120;\n\tHealth = HealthMax;\n}\n\n\nbool USAttributeComponent::IsFullHealth() const\n{\n\treturn Health == HealthMax;\n}\n\nfloat USAttributeComponent::GetHealthMax() const\n{\n\treturn HealthMax;\n}\n\nbool USAttributeComponent::ApplyHealthChange(float Delta)\n{\n\n\tfloat OldHealth = Health;\n\n\tHealth = FMath::Clamp(Health+Delta,0.0f,HealthMax);\n\n\tfloat ActualDelta = Health - OldHealth;\n\tOnHealthChanged.Broadcast(nullptr,this,Health,ActualDelta);\n\treturn ActualDelta != 0;\n}\n\n<\/code><\/pre>\n<p>\u5728PlayerHealth_Widget\u4e2d\u5982\u4e0b\u4fee\u6539<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240618\/2024061801.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240618\/2024061801.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p>\u5728PlayCharacter\u84dd\u56fe\u4e2d\u4fee\u6539<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240618\/2024061802.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240618\/2024061802.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<h2 id=\"\u4e3abots\u6dfb\u52a0\u751f\u547dui\">\u4e3aBots\u6dfb\u52a0\u751f\u547dUI<\/h2>\n<p>\u521b\u5efa\u65b0\u7c7bSWorldUserWidget,\u57fa\u7c7b\u662fUserWidget<\/p>\n<pre><code class=\"language-cpp\" lang=\"cpp\">\/\/SWorldUserWidget.h\n\/\/ Fill out your copyright notice in the Description page of Project Settings.\n\n#pragma once\n\n#include \"CoreMinimal.h\"\n#include \"Blueprint\/UserWidget.h\"\n#include \"SWorldUserWidget.generated.h\"\n\nclass USizeBox;\n\/**\n * \n *\/\nUCLASS()\nclass ACTIONROGUELIKE_API USWorldUserWidget : public UUserWidget\n{\n\tGENERATED_BODY()\n\nprivate:\n\tvirtual void NativeTick(const FGeometry&amp; MyGeometry, float InDeltaTime) override;\n\n\nprotected:\n\n\tUPROPERTY(meta = (BindWidget))\n\tUSizeBox* ParentSizeBox;\n\npublic:\n\tUPROPERTY(BlueprintReadOnly,Category=\"UI\")\n\tAActor* AttachedActor;\n    \n    UPROPERTY(BlueprintReadOnly,Category=\"UI\")\n\tFVector WorldOffset;\n};\n\n\/\/SWorldUserWidget.cpp\n\n#include \"SWorldUserWidget.h\"\n\n#include \"Blueprint\/WidgetLayoutLibrary.h\"\n#include \"Components\/SizeBox.h\"\n#include \"Kismet\/GameplayStatics.h\"\n\nvoid USWorldUserWidget::NativeTick(const FGeometry&amp; MyGeometry, float InDeltaTime)\n{\n\tSuper::NativeTick(MyGeometry, InDeltaTime);\n\n    if(!IsValid(AttachedActor))\n\t{\n\t\tRemoveFromParent();\n\t\t\n        UE_LOG(LogTemp,Warning,TEXT(\"AttachedActor no longer valid,removing Health Widget\"));\n        \n\t\treturn;\n\t}\n    \n\tFVector2D ScreenPosition;\n\tif(UGameplayStatics::ProjectWorldToScreen(GetOwningPlayer(),AttachedActor-&gt;GetActorLocation()  + WorldOffset,ScreenPosition))\n\t{\n\t\tfloat Scale = UWidgetLayoutLibrary::GetViewportScale(this);\n\n\t\tScreenPosition \/= Scale;\n\n\t\tif(ParentSizeBox)\n\t\t{\n\t\t\tParentSizeBox-&gt;SetRenderTranslation(ScreenPosition);\n\t\t}\n\t}\n}\n\n\n\/\/SAICharacter.cpp\nvoid ASAICharacter::OnHealthChanged(AActor* InstigatorActor, USAttributeComponent* OwningComp, float NewHealth,\n\tfloat Delta)\n{\n\tif(Delta &lt;0.0f)\n\t{\n\t\tif(InstigatorActor != this)\n\t\t{\n\t\t\tSetTargetActor(InstigatorActor);\n\t\t}\n\t\t\n        \/\/\u65b0\n\t\tif(ActiveHealthBar == nullptr)\n\t\t{\n\t\t\tActiveHealthBar = CreateWidget&lt;USWorldUserWidget&gt;(GetWorld(),HealthBarWidgetClass);\n\t\t\tif(ActiveHealthBar)\n\t\t\t{\n                ActiveHealthBar-&gt;AttachedActor = this;\n\t\t\t\tActiveHealthBar-&gt;AddToViewport();\n\t\t\t}\n\t\t}\n\t\t\n\t\tGetMesh()-&gt;SetScalarParameterValueOnMaterials(TimeToHitParamName, GetWorld()-&gt;TimeSeconds);\n\n\t\tif(NewHealth &lt;= 0.0f)\n\t\t{\n\t\t\t\/\/stop BT\n\t\t\tAAIController* AIC =  Cast&lt;AAIController&gt;(GetController());\n\t\t\tif(AIC )\n\t\t\t{\n\t\t\t\tAIC-&gt;GetBrainComponent()-&gt;StopLogic(\"Killed\");\n\t\t\t}\n\n\t\t\t\/\/ragdoll\n\t\t\tGetMesh()-&gt;SetAllBodiesSimulatePhysics(true);\n\t\t\tGetMesh()-&gt;SetCollisionProfileName(\"Ragdoll\");\n\t\t\t\n\n\t\t\t\/\/set lifespan\n\t\t\tSetLifeSpan(10.0f);\n\t\t}\n\t}\n}\n\n\n\n\/\/SAICharacter.h\nprotected:\n\tUPROPERTY(EditDefaultsOnly,Category=\"UI\")\n\tTSubclassOf&lt;UUserWidget&gt; HealthBarWidgetClass;\n<\/code><\/pre>\n<p>\u4ee5SWorldUserWidget\u4e3a\u6a21\u677f\u521b\u5efa\u65b0\u7684UI<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/AI\/20240910\/2024091005.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/AI\/20240910\/2024091005.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p>\u5f39\u51fa\u8b66\u544a\uff0cParentSizeBox\u672a\u88ab\u53d1\u73b0<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/AI\/20240910\/2024091006.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/AI\/20240910\/2024091006.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p>\u6dfb\u52a0SizeBox\u5e76\u6539\u540d\u4e3aParentSizeBox<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/AI\/20240910\/2024091007.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/AI\/20240910\/2024091007.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p>\u5982\u56fe\u4e0b\u4e00\u6837\u53bb\u4fee\u6539<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/AI\/20240910\/2024091008.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/AI\/20240910\/2024091008.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p>\u5728MinionHealth_Widget\u4e2d\u53bb\u4fee\u6539<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240911\/2024091101.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240911\/2024091101.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p>\u4fee\u6539MinionRangedBP\u4e2d\u7684UI\uff0c\u8fd9\u65f6\u5019\u6211\u4eecbots\u65f6\u4f1a\u4ea7\u751f\u8840\u6761\uff0c\u4f46\u662f\u8fd9\u65f6\u7684\u8840\u6761\u4e0d\u4f1a\u5224\u65ad\u662f\u5426\u4e3a\u7a7a<\/p>\n<p>\u6240\u4ee5\u5f53bot\u5728\u6b7b\u4ea1\u4e00\u6bb5\u65f6\u95f4\u6d88\u5931\u540e\uff0c\u5c31\u4f1a\u4ea7\u751f\u5d29\u6e83\uff0c\u56e0\u4e3aue\u7684\u5783\u573e\u5185\u5b58\u56de\u6536\u7cfb\u7edf\uff0c\u6bcf\u969460\u79d2\u56de\u6536\u4e00\u6b21<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240911\/2024091102.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240911\/2024091102.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<pre><code>if(!IsValid(AttachedActor))\n\t{\n\t\tRemoveFromParent();\n\t\t\n\t\treturn;\n\t}\n\u6dfb\u52a0\u4e0a\u9762\u4ee3\u7801\u540e\u89e3\u51b3\n<\/code><\/pre>\n<p>\u8c03\u6574\u5bf9\u9f50\u5ea6<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240911\/2024091103.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240911\/2024091103.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p>\u4fee\u6539\u84dd\u56fe<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240911\/2024091104.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240911\/2024091104.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<h2 id=\"\u5408\u5e76hud-widgets\">\u5408\u5e76HUD Widgets<\/h2>\n<p>\u521b\u5efa\u65b0\u7684Widget\u84dd\u56fe<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240911\/2024091106.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240911\/2024091106.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p>\u66ff\u6362\u6389\u539f\u6765PlayerCharacter\u7684Class<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240911\/2024091105.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240911\/2024091105.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<h2 id=\"\u70b9\u6570ui\u4e0e\u65f6\u95f4\u8ba1\u6570ui\">\u70b9\u6570UI\u4e0e\u65f6\u95f4\u8ba1\u6570UI<\/h2>\n<p>\u521b\u5efaCredits_Widget\u84dd\u56fe<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240911\/2024091107.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240911\/2024091107.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p>\u521b\u5efaGameModeBaseInfo_Widget\u84dd\u56fe<\/p>\n<p>\u4e3aTEXT Binding\u65b0\u7684\u51fd\u6570,GetGameTimeText<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240911\/2024091108.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20240911\/2024091108.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p>\u5728MainHUD\u4e2d\u6dfb\u52a0\u6211\u4eec\u65b0\u521b\u5efa\u7684Credits\u548cGameModeBaseInfo<\/p>\n<h2 id=\"\u4e3b\u83dc\u5355\u53ca\u6682\u505c\u83dc\u5355\">\u4e3b\u83dc\u5355\u53ca\u6682\u505c\u83dc\u5355<\/h2>\n<p>\u5728\u65b0\u7684\u6587\u4ef6\u5939\u4e2d\u521b\u5efa\u65b0\u7684\u84dd\u56fe<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241006\/2024100601.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241006\/2024100601.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p>\u6dfb\u52a0\u6309\u94ae\u548c\u6587\u672c<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241006\/2024100602.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241006\/2024100602.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p>\u590d\u5236\u4e00\u4e2a\u4e00\u6837\u7684button<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241006\/2024100603.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241006\/2024100603.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p>\u4e3abutton\u4e13\u95e8\u521b\u5efa\u4e00\u4e2a\u84dd\u56fe<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241006\/2024100604.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241006\/2024100604.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p>\u5f15\u5165\u5230\u4e3b\u83dc\u5355\u4e2d<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241006\/2024100605.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241006\/2024100605.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p>\u4e3a\u6211\u4eec\u7684\u6309\u94ae\u84dd\u56fe\u521b\u5efa\u53d8\u91cf<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241006\/2024100606.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241006\/2024100606.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p>\u8bbe\u7f6e\u76f8\u5173\u84dd\u56fe<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241006\/2024100607.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241006\/2024100607.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p>\u5efa\u7acb\u76f8\u5f53\u4e8e C++\u4e2d\u7684BroadCast<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241006\/2024100608.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241006\/2024100608.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p>\u5728\u6211\u4eec\u7684\u84dd\u56fe\u4e2d\u521b\u5efa\u70b9\u51fbbutton\u7684\u4e8b\u4ef6<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241006\/2024100609.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241006\/2024100609.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p>\u8bbe\u7f6e\u9000\u51fa\u6e38\u620f<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241006\/2024100610.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241006\/2024100610.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p>\u5728\u6211\u4eec\u7684\u83dc\u5355\u6309\u94ae\u4e2d\u8bbe\u7f6e\u6240\u6709\u7684\u6309\u94ae<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241006\/2024100611.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241006\/2024100611.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p>\u6dfb\u52a0textbox<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241006\/2024100612.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241006\/2024100612.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p>\u8bbe\u7f6e\u84dd\u56fe<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241006\/2024100613.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241006\/2024100613.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p>\u521b\u5efa\u65b0\u7684\u84dd\u56fe<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241006\/2024100614.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241006\/2024100614.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p>\u8bbe\u7f6e\u84dd\u56fe<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241006\/2024100615.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241006\/2024100615.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241006\/2024100616.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241006\/2024100616.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p>\u6211\u4eec\u521b\u5efa\u65b0\u7684\u5730\u56fe\uff0c\u8bbe\u7f6e\u8fd9\u4e2a\u4e16\u754c\u7684gamemode,\u73b0\u5728\u6211\u4eec\u7684\u83dc\u5355\u5c31\u641e\u5b9a\u4e86<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241006\/2024100617.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241006\/2024100617.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p>\u5176\u5b9e\u6709\u4e00\u70b9\u6ca1\u6709\u5b8c\u6210\uff0c\u90a3\u5c31\u662f<\/p>\n<p>\u8bbe\u7f6e\u84dd\u56fe<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241006\/2024100618.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241006\/2024100618.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241006\/2024100619.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241006\/2024100619.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p>\u4e3a\u6211\u4eec\u7684\u6682\u505c\u83dc\u5355\u521b\u5efa\u84dd\u56fe<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241006\/2024100620.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241006\/2024100620.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241006\/2024100621.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241006\/2024100621.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p>\u521b\u5efa\u65b0\u7684\u7c7b<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241006\/2024100622.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241006\/2024100622.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<pre><code class=\"language-cpp\" lang=\"cpp\">\/\/SPlayerController.h\n\/\/ Fill out your copyright notice in the Description page of Project Settings.\n\n#pragma once\n\n#include \"CoreMinimal.h\"\n#include \"GameFramework\/PlayerController.h\"\n#include \"SPlayerController.generated.h\"\n\nDECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnPawnChanged, APawn*, NewPawn);\n\nDECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnPlayerStateChanged, APlayerState*, NewPlayerState);\n\/**\n * \n *\/\nUCLASS()\nclass ACTIONROGUELIKE_API ASPlayerController : public APlayerController\n{\n\tGENERATED_BODY()\n\n\nprotected:\n\tUPROPERTY(EditDefaultsOnly, Category = \"UI\")\n\tTSubclassOf&lt;UUserWidget&gt; PauseMenuClass;\n\n\tUPROPERTY()\n\tUUserWidget* PauseMenuInstance;\n\n\tUPROPERTY(BlueprintAssignable)\n\tFOnPawnChanged OnPawnChanged;\n\n\t\/\/ Listen for incoming player state (for clients this may be nullptr when initially joining a game, \n\t\/\/ afterwards player state will not change again as PlayerControllers maintain the same player state throughout the level)\n\tUPROPERTY(BlueprintAssignable)\n\tFOnPlayerStateChanged OnPlayerStateReceived;\n\n\tUFUNCTION(BlueprintCallable)\n\tvoid TogglePauseMenu();\n\n\tvoid SetupInputComponent() override;\n\n\tvirtual void SetPawn(APawn* InPawn) override;\n\n\tvirtual void BeginPlayingState() override;\n\n\tUFUNCTION(BlueprintImplementableEvent)\n\tvoid BlueprintBeginPlayingState();\n\n\tvoid OnRep_PlayerState() override;\n\t\n};\n\n\n\/\/SPlayerController.cpp\n\/\/ Fill out your copyright notice in the Description page of Project Settings.\n\n\n#include \"SPlayerController.h\"\n\n#include \"Blueprint\/UserWidget.h\"\n\nvoid ASPlayerController::TogglePauseMenu()\n{\n\tif (PauseMenuInstance &amp;&amp; PauseMenuInstance-&gt;IsInViewport())\n\t{\n\t\tPauseMenuInstance-&gt;RemoveFromParent();\n\t\tPauseMenuInstance = nullptr;\n\n\t\tbShowMouseCursor = false;\n\t\tSetInputMode(FInputModeGameOnly());\n\t\treturn;\n\t}\n\n\tPauseMenuInstance = CreateWidget&lt;UUserWidget&gt;(this, PauseMenuClass);\n\tif (PauseMenuInstance)\n\t{\n\t\tPauseMenuInstance-&gt;AddToViewport(100);\n\n\t\tbShowMouseCursor = true;\n\t\tSetInputMode(FInputModeUIOnly());\n\t}\n}\n\n\nvoid ASPlayerController::SetupInputComponent()\n{\n\tSuper::SetupInputComponent();\n\n\tInputComponent-&gt;BindAction(\"PauseMenu\", IE_Pressed, this, &amp;ASPlayerController::TogglePauseMenu);\n}\n\nvoid ASPlayerController::SetPawn(APawn* InPawn)\n{\n\tSuper::SetPawn(InPawn);\n}\n\nvoid ASPlayerController::BeginPlayingState()\n{\n\tBlueprintBeginPlayingState();\n}\n\n\nvoid ASPlayerController::OnRep_PlayerState()\n{\n\tSuper::OnRep_PlayerState();\n\n\tOnPlayerStateReceived.Broadcast(PlayerState);\n}\n\n<\/code><\/pre>\n<p>\u8bbe\u7f6e\u6682\u505c\u83dc\u5355\u952e<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241006\/2024100623.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241006\/2024100623.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p>\u4fee\u6539\u6211\u4eecPlayControllerBP\u7684\u7236\u7c7b<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241006\/2024100624.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241006\/2024100624.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241006\/2024100625.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241006\/2024100625.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241006\/2024100626.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241006\/2024100626.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p>\u73b0\u5728\u6211\u4eec\u53ef\u4ee5\u5b9e\u73b0\u6211\u4eec\u6309\u4e0besc\u5f39\u51fa\u6682\u505c\u83dc\u5355\u4e86<\/p>\n<h2 id=\"\u6548\u679cui\">\u6548\u679cUI<\/h2>\n<p>\u521b\u5efa\u6211\u4eec\u7684\u6548\u679cUI<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241007\/2024100701.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241007\/2024100701.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p>\u5c06\u6548\u679cUI\u5408\u5728\u4e00\u8d77<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241007\/2024100702.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241007\/2024100702.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p>\u5c06\u6548\u679cUI\u548c\u6211\u4eec\u7684\u8840\u91cf\u6761\u7ed1\u5b9a\u5728\u4e00\u8d77<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241007\/2024100703.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241007\/2024100703.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<pre><code class=\"language-cpp\" lang=\"cpp\">\/\/SActionComponent.h\nDECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FOnActionStateChanged, USActionComponent*, OwningComp, USAction*, Action);\n\npublic:\n\tUPROPERTY(BlueprintAssignable)\n\tFOnActionStateChanged OnActionStarted;\n\n\tUPROPERTY(BlueprintAssignable)\n\tFOnActionStateChanged OnActionStopped;\n\nprotected:\n\tUPROPERTY(BlueprintReadOnly)\n\tTArray&lt;USAction*&gt; Actions;\n\n\n\/\/SAction.h\nprotected:\n\tUPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = \"UI\")\n\tUTexture2D* Icon;\n\npublic:\n\tUPROPERTY()\n\tfloat TimeStarted;\n\n\/\/SAction.cpp\nvoid USAction::StartAction_Implementation(AActor* Instigator)\n{\n\tif (GetOwningComponent()-&gt;GetOwnerRole() == ROLE_Authority)\n\t{\n\t\tTimeStarted = GetWorld()-&gt;TimeSeconds;\n\t}\n\n\tGetOwningComponent()-&gt;OnActionStarted.Broadcast(GetOwningComponent(), this);\n\t\n}\n\nvoid USAction::StopAction_Implementation(AActor* Instigator)\n{\n\tGetOwningComponent()-&gt;OnActionStopped.Broadcast(GetOwningComponent(), this);\n}\n\n\n\/\/SActionEffect.h\npublic:\n\tUFUNCTION(BlueprintCallable, Category = \"Action\")\n\tfloat GetTimeRemaining() const;\n\n\/\/SActionEffect.cpp\n\nfloat USActionEffect::GetTimeRemaining() const\n{\n\tAGameStateBase* GS = GetWorld()-&gt;GetGameState&lt;AGameStateBase&gt;();\n\tif (GS)\n\t{\n\t\tfloat EndTime = TimeStarted + Duration;\n\t\treturn EndTime - GS-&gt;GetServerWorldTimeSeconds();\n\t}\n\n\treturn Duration;\n}\n<\/code><\/pre>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241007\/2024100704.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241007\/2024100704.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241007\/2024100705.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241007\/2024100705.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241007\/2024100706.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241007\/2024100706.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p>\u4e3a\u6211\u4eec\u7684\u71c3\u70e7\u6548\u679c\u5206\u914d\u4e00\u4e2aUI<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241007\/2024100707.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241007\/2024100707.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p>\u4fdd\u8bc1\u6211\u4eeceffect\u662f\u6709\u6548\u7684<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241007\/2024100708.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241007\/2024100708.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p>\u4f7f\u5f97buff\u6548\u679c\u6d88\u5931\u540e\u56fe\u6807\u4e5f\u6d88\u5931\uff08\u6211\u8fd9\u91cc\u6ca1\u6709\u6d88\u5931\uff09<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241007\/2024100709.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241007\/2024100709.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p>\u4e3a\u6211\u4eec\u7684Icon\u8bbe\u7f6e\u4e00\u4e2a\u6750\u8d28<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241007\/2024100710.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241007\/2024100710.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p>\u4fee\u6539\u6211\u4eec\u7684Slot<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241007\/2024100711.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241007\/2024100711.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n<p>\u6839\u636e\u6301\u7eed\u65f6\u95f4\uff0c\u4fee\u6539buff\u56fe\u6807\u663e\u793a,\u4f46\u574f\u6d88\u606f\u662f\u7531\u4e8e\u4e4b\u524d\u7684\u95ee\u9898\uff0c\u6211\u4eec\u7684\u56fe\u6807\u8fd8\u662f\u4e0d\u4f1a\u6d88\u5931<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241007\/2024100712.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic.vanforever.com.cn\/UE\/UI\/20241007\/2024100712.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" \/><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>UE UI\u5b66\u4e60\u4e4b\u8def \u6295\u5c04\u72693DUI \u521b\u5efa\u65b0\u7684UI\u84dd\u56fe,\u5e76\u8c03\u6574Text\u6587\u672c\u7684\u8bbe\u7f6e \u521b\u5efa\u65b0\u7684Actor\u53d8\u91cf,\u52fe\u9009I [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,27],"tags":[4,5],"class_list":["post-223","post","type-post","status-publish","format-standard","hentry","category-ue","category-cs193u","tag-c","tag-ue"],"_links":{"self":[{"href":"https:\/\/www.vanforever.com.cn\/index.php?rest_route=\/wp\/v2\/posts\/223","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.vanforever.com.cn\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.vanforever.com.cn\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.vanforever.com.cn\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.vanforever.com.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=223"}],"version-history":[{"count":9,"href":"https:\/\/www.vanforever.com.cn\/index.php?rest_route=\/wp\/v2\/posts\/223\/revisions"}],"predecessor-version":[{"id":522,"href":"https:\/\/www.vanforever.com.cn\/index.php?rest_route=\/wp\/v2\/posts\/223\/revisions\/522"}],"wp:attachment":[{"href":"https:\/\/www.vanforever.com.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=223"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.vanforever.com.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=223"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.vanforever.com.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=223"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}