Unity中OnValidate的使用

OnValidate可以用来验证一些数据,脚本加载或Inspector中的任何值被修改时会调用。
详细介绍可以看下面的链接参考。
相关链接

我目前使用到的用法是拖拽赋值时获取目标值,效果如下图。当我往Games拖拽物体时,会给GamePath自动赋值。
在这里插入图片描述在这里插入图片描述

代码示例:

    const string GameFolderPath = "Game/";
    public List<string> gamePath;
    
#if UNITY_EDITOR
    public List<GameObject> Games;
    private void OnValidate()
    {
        gamePath = Games.Select(_ => GameFolderPath + _.name).ToList();
    }
#endif
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Unity 使用 proto,需要先安装 Google 的 protobuf 工具。然后在 Unity 项目导入相关的 proto 文件,使用 protoc 编译器生成对应的 C# 类代码。在 Unity ,可以通过这些 C# 类来序列化和反序列化 proto 数据。 具体的步骤如下: 1. 下载并安装 protobuf 工具,包括 protoc 编译器和 C# 支持库。 2. 在 Unity 创建一个 C# 类来表示你的 proto 数据结构。 3. 在 Unity 导入 proto 文件,使用 protoc 编译器生成对应的 C# 类代码。 4. 在 Unity 使用生成的 C# 类来序列化和反序列化 proto 数据。 以下是一个简单的示例代码,演示了如何在 Unity 使用 proto: ```csharp using System.Collections; using System.Collections.Generic; using UnityEngine; using Google.Protobuf; public class ProtoTest : MonoBehaviour { void Start() { // 创建一个 proto 数据结构 var msg = new MyMessage { Id = 1, Name = "ProtoTest", Values = { 1, 2, 3 } }; // 将 proto 数据序列化成二进制数据 var bytes = msg.ToByteArray(); // 将二进制数据反序列化成 proto 数据 var newMsg = MyMessage.Parser.ParseFrom(bytes); // 输出 proto 数据的内容 Debug.Log($"Id: {newMsg.Id}, Name: {newMsg.Name}, Values: {string.Join(", ", newMsg.Values)}"); } } // 定义一个 proto 数据结构 message MyMessage { int32 Id = 1; string Name = 2; repeated int32 Values = 3; } ``` 注意:在使用 proto 时,需要保证 Unity 和服务器端使用相同的 proto 文件和版本,否则可能会出现兼容性问题。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我寄人间雪满头丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值