当前位置: 首页 > wzjs >正文

网站建设部分费用会计科目空调网站模版

网站建设部分费用会计科目,空调网站模版,做微商怎么找客源加人,湛江网站制作系统🎯 目标: ✅ 了解 C 与蓝图(Blueprint)交互的方式 ✅ 在 C 中调用蓝图函数 ✅ 让蓝图访问 C 变量和方法 ✅ 使用 UFUNCTION、UPROPERTY 进行蓝图暴露 ✅ 提高开发效率,让 C 和蓝图开发者高效协作 1️⃣ 为什么要让 C…

🎯 目标:

✅ 了解 C++ 与蓝图(Blueprint)交互的方式
✅ 在 C++ 中调用蓝图函数
✅ 让蓝图访问 C++ 变量和方法
✅ 使用 UFUNCTION、UPROPERTY 进行蓝图暴露
✅ 提高开发效率,让 C++ 和蓝图开发者高效协作

1️⃣ 为什么要让 C++ 与蓝图交互?

在 Unreal Engine 5 中,C++ 提供强大的底层逻辑,而 蓝图更适合快速调整游戏玩法。
C++ + 蓝图结合开发 = 既有性能,又有灵活性!
🚀

🎯 常见 C++ 与蓝图交互方式:

  1. C++ 定义变量 & 方法 → 蓝图访问 & 调用
  2. C++ 调用蓝图事件 & 函数
  3. C++ 创建蓝图子类
  4. 蓝图扩展 C++ 逻辑(继承 C++ 类)

2️⃣ 在 C++ 中暴露变量给蓝图

C++ 变量默认不可在蓝图中访问,需要使用 UPROPERTY() 暴露给蓝图。

🔹 修改 PlayerCharacter.h

📌 让变量 Health 可以被蓝图访问

#pragma once#include "CoreMinimal.h"
#include "GameFramework/Character.h"
#include "PlayerCharacter.generated.h"UCLASS()
class MYGAME_API APlayerCharacter : public ACharacter
{GENERATED_BODY()public:APlayerCharacter();protected:virtual void BeginPlay() override;public:UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Character Stats")float Health;
};

📌 变量暴露给蓝图的关键词:

修饰符作用
EditAnywhere在蓝图编辑器可修改
BlueprintReadWrite在蓝图中可读写
Category=“xxx”让变量在 Details 面板归类

🔹 在蓝图中访问变量

  1. 打开 UE5,找到 PlayerCharacter

  2. 右键PlayerCharacter 选择Create Blueprint Class Based on PlayerCharacter(创建基于PlayerCharacter的蓝图类)

  3. 命名BP_PlayerCharacter,双击打开BP_PlayerCharacter

  4. 在 Details 面板修改 Health
    在这里插入图片描述

  5. 在 Event Graph 里读取 Health 并打印出来
    在这里插入图片描述

在这里插入图片描述

现在蓝图可以访问 C++ 变量了!

3️⃣ 在 C++ 中暴露方法给蓝图

🔹 修改 PlayerCharacter.h

📌 让 TakeDamage() 方法可被蓝图调用

UFUNCTION(BlueprintCallable, Category = "Character Actions")
void TakeDamage(float DamageAmount);

🔹 修改 PlayerCharacter.cpp

📌 实现 TakeDamage() 方法

#include "PlayerCharacter.h"APlayerCharacter::APlayerCharacter()
{Health = 100.0f;
}void APlayerCharacter::TakeDamage(float DamageAmount)
{Health -= DamageAmount;UE_LOG(LogTemp, Warning, TEXT("玩家受伤,当前血量:%f"), Health);
}

🔹 在蓝图中调用方法

  1. 在 PlayerCharacter 蓝图中,右键搜索 TakeDamage
  2. 连接 Event AnyKey 到 TakeDamage(10.0f)
  3. 运行游戏,按键后,观察输出日志
    在这里插入图片描述
    在这里插入图片描述

现在蓝图可以调用 C++ 方法了!

4️⃣ C++ 调用蓝图事件

有时候,我们希望在 C++ 中调用蓝图实现的功能,比如播放 UI 效果、生成特效等

🔹 在 C++ 定义 BlueprintImplementableEvent

📌 让蓝图实现 OnHealthChanged() 事件

UFUNCTION(BlueprintImplementableEvent, Category = "Character Events")
void OnHealthChanged();

🔹 在 TakeDamage() 触发蓝图事件

📌 修改 TakeDamage(),调用 OnHealthChanged()

void APlayerCharacter::TakeDamage(float DamageAmount)
{Health -= DamageAmount;UE_LOG(LogTemp, Warning, TEXT("玩家受伤,当前血量:%f"), Health);OnHealthChanged();  // 触发蓝图事件
}

🔹 在蓝图实现 OnHealthChanged()

  1. 打开 BP_PlayerCharacter 蓝图
  2. 在 Event Graph 里找到 OnHealthChanged
  3. 打印Health
    在这里插入图片描述
    在这里插入图片描述

现在 C++ 可以调用蓝图事件了!

5️⃣ 让蓝图继承 C++ 类

🔹 在 C++ 创建一个可继承的 Weapon 类

📌 Weapon.h

#pragma once#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "Weapon.generated.h"UCLASS(Blueprintable)
class MYGAME_API AWeapon : public AActor
{GENERATED_BODY()
};

📌 Blueprintable 让蓝图可以继承该类

🔹 在蓝图创建 Weapon 子类

  1. 在 UE5 Content Browser,右键 Weapon 类
  2. 选择 Create Blueprint Class Based on Weapon(创建基于Weapon的蓝图类)
  3. 命名为BP_Weapon
  4. 为 BP_Weapon 添加模型 & 逻辑
  5. 拖到关卡中使用

✅ 现在蓝图可以继承 C++ 代码,扩展游戏逻辑!

6️⃣ C++ 调用蓝图函数

📌 如果蓝图中有 Fire() 方法,C++ 也可以调用

UFUNCTION(BlueprintCallable, Category = "Weapon")
void Fire();

📌 在 C++ 调用蓝图中的 Fire()

if (Weapon)
{Weapon->Fire();
}

现在 C++ 可以调用蓝图方法了!

🎯 总结

✅ C++ 变量 & 方法暴露给蓝图(UPROPERTY()、UFUNCTION())
✅ C++ 触发蓝图事件(BlueprintImplementableEvent)
✅ 蓝图继承 C++ 类,扩展游戏逻辑(Blueprintable)
✅ C++ 可以调用蓝图的函数(BlueprintCallable)

🎮 **C++ + 蓝图结合开发,让游戏既高效又强大!**🚀


文章转载自:

http://KYITGn9a.jLthz.cn
http://WLn6S268.jLthz.cn
http://kSo1msff.jLthz.cn
http://PJpCbomR.jLthz.cn
http://3jMoPyWn.jLthz.cn
http://I17UtaR6.jLthz.cn
http://xfhRCo3a.jLthz.cn
http://CXfv0llc.jLthz.cn
http://PFug8zxe.jLthz.cn
http://HdZHUGpL.jLthz.cn
http://2hD6Ts7M.jLthz.cn
http://VVw5dAeJ.jLthz.cn
http://fpzh58TY.jLthz.cn
http://pqbUOFY2.jLthz.cn
http://M1yYD1YW.jLthz.cn
http://alPJiesZ.jLthz.cn
http://09Hagt7x.jLthz.cn
http://DaTexNAr.jLthz.cn
http://E5adEair.jLthz.cn
http://ho7CQyqm.jLthz.cn
http://Lywvr6wm.jLthz.cn
http://pAjsZ1NP.jLthz.cn
http://A5SYF8Zl.jLthz.cn
http://4CclRsgU.jLthz.cn
http://fCVbNGLq.jLthz.cn
http://hCuF7efS.jLthz.cn
http://0rI69xOy.jLthz.cn
http://QmWZWZeA.jLthz.cn
http://yFNAZU4u.jLthz.cn
http://VuRzIuYb.jLthz.cn
http://www.dtcms.com/wzjs/699491.html

相关文章:

  • 怎么黑网站用代码做一号店网站怎么做
  • 电子商务网站主要功能海口网站建设加q.479185700
  • 婚纱网站手机网站世界上做的最后的网站
  • 门头沟富阳网站建设wordpress 更换模板
  • 玉泉路网站建设网站建设售后服务合同
  • 南平建设集团网站全网推广软件
  • 自媒体横行还有做网站手机企业网站
  • 小白建站软件淄博英文网站建设专业
  • 用什么做网站的访问量统计公示专家的定义
  • 制作网站哪家专业实验中心网站建设
  • 怎样在谷歌做网站做的比较好的时尚网站
  • 烟台品牌网站建设校园网站建设检查自评报告
  • 宁波网站建设wordpress nginx 重写规则
  • 怀化网站建设设计网站刚做怎么做seo优化
  • 西seo优化排名专业网站优化外包
  • 整站多关键词优化电子工程师证怎么考
  • 郑州联通网站备案网站建设的一般要素
  • 网站建设 海南wordpress无法开始安装
  • 网盘做电子书下载网站17网站一起做网店潮汕依依
  • 最好看的网站模板东莞招聘网人才网
  • 邯郸网站制作哪里做wordpress托管服务器
  • 宿州做网站的有吗wordpress目录地址
  • 卖车网站安徽城乡建设局网站
  • 网站建设主要工作内容室内空间设计案例
  • 建设银行管官方网站在线crm视频
  • 做电商网站用什么软件昌平网站建设哪家强
  • 可以用服务器做网站做外贸需要浏览外国网站
  • 中国网站排名网官网百度竞价开户哪家好
  • 网站服务器位置查询沈阳建设工程信息网 费用中项网
  • 手机网站开发人员工具中国建设企业网站官网