gpt4 book ai didi

unity-game-engine - 如何改变玩家状态?

转载 作者:行者123 更新时间:2023-12-02 23:41:25 25 4
gpt4 key购买 nike

我有一个“设计模式”问题。我想让玩家能够改变他的状态。如果你愿意的话,可以说我拥有三个州或 super 大国。他们每个人都有不同的能力。如果这种能力只是基于某些属性(比如质量或速度),我可以在玩家身上更改它,一切都会正常工作。

但是如果其他一些功能发生了变化怎么办?假设如果玩家处于状态 2 并且他跳跃,则动画会有所不同,并且其他一些事情会发生变化。现在我知道我可以通过大量检查状态更新循环来实现这一点,但我想让它变得优雅。

到目前为止,我的想法是创建 GeneralPlayer 对象,每个特殊玩家都继承它并添加特殊能力,当玩家更改状态时,我会将玩家的实例更改为该实例。

还有什么更好的办法吗?我使用 C# 作为脚本语言

最佳答案

这种方法的问题是您为一个玩家使用多个不同的对象。每次玩家改变状态时传递数据可能会造成一些困惑,这是最好避免的。由于 C# 有委托(delegate),就我们的目的而言,其行为与一流函数非常相似,因此可以通过在每次状态更改时更改某些例程和字段值来更改播放器的行为。这使您可以将数据保存在一个对象中并动态更改行为,而无需仅依赖条件。我听过很多次精辟的说法,对象封装了状态和行为。在 C# 中,您可以通过操作字段值来更改状态,并通过依赖委托(delegate)来更改行为。这应该可以解决您的问题。

关于unity-game-engine - 如何改变玩家状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20225006/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com