在 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 中封装继承字段的最佳方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章
在 Unity Billiard 游戏上实现多人游戏的最佳方法是啥?