UE中UPROPERTY的用法(UEC++个人学习笔记)

UPROPERTY

属性使用标准的C++变星语法声明,前面用UPROPERTY宏来定义属性元数据和变量说明符。

设置可视

//仅在类默认设置可见(即里面面板)
	UPROPERTY(VisibleDefaultsOnly)
		int32 VisibleDefaultsOnlyInt;

	//仅在实例化细节面板可见(即外面面板)
	UPROPERTY(VisibleInstanceOnly)
		FString VisibleInstancestring;
	
	//类默认设置和实例化细节面板都可见
	UPROPERTY(VisibleAnywhere)
		FVector VisibleAnywhereVector;

在类的设置里面会显示,但是无法编辑

设置可编辑

//仅在类默认设置里面编辑
	UPROPERTY(EditDefaultsOnly)
		int32 EditDefaultOnlyInt;

	//仅在实例化细节面板编辑
	UPROPERTY(EditInstanceOnly)
		FString EditInstanceOnlyString;

	//仅在类默认设置和实例化都可以编辑
	UPROPERTY(EditAnywhere)
		FVector EditAnywhereVector;

在类的设置里面会显示,可以自行修改里面数值

创建变量还有子目录

//仅仅在蓝图可读
	UPROPERTY(EditAnywhere, BlueprintReadOnly)
		int32 BlueprintReadOnlyInt;
	
	//在蓝图中可读可写即可以获取和设置变量
	UPROPERTY(EditAnywhere, BlueprintReadWrite)
		int32 BlueprintReadWriteInt;
	   
	//Category目录,创建Vaule1变量(在蓝图中可以获取和设置)
	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "MyIntValue")
		int32 Value1;

	//这样的写代表MySubIntValue是MyIntValue的子目录
	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "MyIntValue|MySubIntValue")
		int32 Value2;

在蓝图中也可编辑

使用meta元数据(起别名)

//meta元数据说明符
	//DisPlayName别名,将Value3的名字替换成MyValue3DisplayName
	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta = (DisplayName="MyValue3DisplayName"))
		int32 MyValue3;

在蓝图上搜索

EditCondition条件控制器

//只有当Controller的布尔值为true的时候才能修改isController(即Value3的值)
	//EditCondition可以用于控制另一个变量
	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta = (DisplayName = "Controller"))
		bool isController;
	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta = (EditCondition = "isController"))
		float Value3;

 这样会使得只能当controller打勾的时候才能编辑value3

Tooltip可以使得当鼠标移动到名字上的时候显示提示

//Tooltip就是在isTrue的变量的提示
	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta = (ToolTip = "isControllerTrue"))
		bool isTrue;

 如图

笔记总结来源于:【【虚幻5】UE5C++零基础全网全流程开发从入门到进阶教程合集(持续跟新中)】https://www.bilibili.com/video/BV1Dc411f7nx?vd_source=90cb1ac44856e5e826e2bee8aa9d8a41

  • 13
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Puerts是一款针对Unreal Engine 4的JavaScript运行时,它允许开发者使用JavaScript来编写UE4的游戏逻辑。下面是一些常见的Puerts语法和函数: ### 基本语法 #### 变量声明 ```javascript const a = 1; // 常量 let b = 2; // 变量 var c = 3; // 变量(不推荐使用) ``` #### 条件语句 ```javascript if (condition) { // 如果条件为真,执行这里的代码 } else if (condition2) { // 如果条件2为真,执行这里的代码 } else { // 如果条件都不为真,执行这里的代码 } ``` #### 循环语句 ```javascript for (let i = 0; i < 10; i++) { // 循环10次 } while (condition) { // 只要条件为真,就一直执行 } do { // 先执行一次,再判断条件是否为真,如果为真就继续执行 } while (condition); ``` #### 函数声明 ```javascript function add(a, b) { return a + b; } const add = function(a, b) { return a + b; }; const add = (a, b) => { return a + b; }; ``` ### Puerts函数 #### UObject Puerts的UObject类对应UE4的UObject,它是所有游戏对象的基类。 ```javascript const myObject = JSClass.Load("/Game/MyBlueprint.MyBlueprint_C"); // 加载蓝图类 const myObject2 = JSClass.Load("/Game/MyBlueprint.MyBlueprint_C").GeneratedClass; // 加载C++类 const myActor = myObject.GetDefaultObject(); // 获取默认对象 myActor.SetActorLocation(new FVector(0, 0, 0)); // 设置Actor的位置 ``` #### UFunction Puerts的UFunction类对应UE4的UFunction,它用于调用UE4的函数。 ```javascript const myActor = GWorld.SpawnActor(MyActor.StaticClass(), new FVector(0, 0, 0), new FRotator(0, 0, 0)); // 在世界生成Actor myActor.K2_AddActorWorldOffset(new FVector(100, 0, 0), false, null, false); // 调用Actor的函数 ``` #### UClass Puerts的UClass类对应UE4的UClass,它用于获取游戏类的元信息。 ```javascript const myClass = JSClass.Load("/Game/MyBlueprint.MyBlueprint_C"); // 加载蓝图类 const myClass2 = JSClass.Load("/Game/MyBlueprint.MyBlueprint_C").GeneratedClass; // 加载C++类 const myActorClass = myClass.Class; // 获取Actor类的元信息 ``` #### FObjectFinder Puerts的FObjectFinder类用于查找UE4的对象。 ```javascript const myTexture = new FObjectFinder(UTexture2D)("Texture2D'/Game/Textures/MyTexture.MyTexture'").Object; const myMaterial = new FObjectFinder(UMaterial)("Material'/Game/Materials/MyMaterial.MyMaterial'").Object; ``` #### FText Puerts的FText类对应UE4的FText,它用于处理游戏的文本。 ```javascript const myText = new FText("Hello, world!"); // 创建一个新的FText对象 const myString = myText.ToString(); // 将FText转换为字符串 ``` 这里只列举了一些常见的Puerts语法和函数,更详细的内容可以参考官方文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值