从父类数组中 放入 不同的 子类.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_()
{
return TestStyle.AA;
}
}
创建一个 TestSone_1.asset,使得其变量testS

本文介绍了在Unity中如何从父类数组中获取不同子类实例的变量值。提供了两种方法:1) 使用virtual/override方法,适用于调用少量变量;2) 利用反射获取FieldInfo,适合大量重复调用的场景。通过实例展示了在物品、食物、建筑等场景的应用。
最低0.47元/天 解锁文章
16万+

被折叠的 条评论
为什么被折叠?



