在 Unity 2D 中封装继承字段的最佳方法是啥?

Posted

技术标签:

【中文标题】在 Unity 2D 中封装继承字段的最佳方法是啥?【英文标题】:What is the best way to encapsulate inherited fields in Unity 2D?在 Unity 2D 中封装继承字段的最佳方法是什么? 【发布时间】:2022-01-21 03:53:31 【问题描述】:

我目前正在设计一个 Unity 游戏,我想确保我正在实施正确的封装。但是,我被困在这个问题上:

假设我有一个类Item,其字段为:private string itemName。我还有一个类Strawberry,它是Item 的子类。我想在类Strawberry 中编写一个返回其itemName 的方法。

这些脚本是 MonoBehaviour,因此它们不能包含可以解决上述问题的构造函数,在其构造函数中使用 base

我应该使用什么策略来设置Strawberry 类的名称?

谢谢!

【问题讨论】:

protected ... 【参考方案1】:

您需要保护您的itemName 字符串。这意味着它可以被子类访问。

项目基类:

using UnityEngine;

public class Item : MonoBehaviour

    protected string itemName = "itemBase";

草莓类:

using UnityEngine;

public class Strawberry : Item

    // Start is called before the first frame update
    void Start()
    
        Debug.Log($"my mane is: GetItemName()"); 
    

    string GetItemName() => this.itemName;

【讨论】:

谢谢!但是我在哪里实际声明草莓的 itemName 应该是“草莓”? 草莓类本身更有意义,不是吗? 为什么不简单地Debug.Log($"my name is: itemName"); ;)

以上是关于在 Unity 2D 中封装继承字段的最佳方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

unity3d开发2d游戏中Assetbundle有啥作用

在 Unity Billiard 游戏上实现多人游戏的最佳方法是啥?

封装 React 应用程序的最佳方法是啥?

在 Django 中使用更多字段扩展用户模型的最佳方法是啥?

蓝鸥Unity开发基础二——课时15 封装和继承

在 ydn-db 中按多个字段搜索的最佳方法是啥?