[Unity].asset如何从父类数组中获得不同子类的变量的值

本文介绍了在Unity中如何从父类数组中获取不同子类实例的变量值。提供了两种方法:1) 使用virtual/override方法,适用于调用少量变量;2) 利用反射获取FieldInfo,适合大量重复调用的场景。通过实例展示了在物品、食物、建筑等场景的应用。
摘要由CSDN通过智能技术生成

 

从父类数组中 放入 不同的 子类.asset或者实体,并且 通过 父类数组 获得 不同 子类 的变量。

方法1:

基类用virtual方法,继承的子类用override方法获得变量的值。(计算简单,调用少量变量的时候 快捷)

方法2:

 FieldInfo[] fil = type.GetFields();

(遍历每一个 子类 的变量,包括继承 父类 的变量,对于 大量 重复 调用 的变量 效果拔群)

 

应用:不同物品、食物:物品、装备:物品。

建筑、商店:建筑、可破坏建筑:建筑、不可破坏建筑:建筑。

 


逻辑图。

 

 


 

TestFather.cs

using UnityEngine;

//.cs脚本 继承ScriptableObject,才能使得 CreateAssetMenu 生效
[CreateAssetMenu(fileName = "New TestFather", menuName = "TestFather")]
public class TestFather : ScriptableObject {

public int int_a = 1;
public int int_b = 2;

    public virtual TestStyle testStyle_()
  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值