猿问

如果选择了新的电源,如何禁用其他电源的效果?

我正在制作一款游戏,您可以在其中获得能量并为您提供提升或新的特权 Ex。火力提升让你跳得更高,让你的角色/球变小,当你拿起其他能量提升时,会产生新的不同的特权或力量

顺便说一句,我是 C# 新手,Unity 我的想法不是为每次加电设置一个计时器,但是当你拿起一个新的加电时,它会禁用你上次加电的效果。有人能帮我吗?


MMMHUHU
浏览 135回答 1
1回答

眼眸繁星

好吧,你应该建立一个自己的类或系统来处理你的通电机制。代码实际上只是您逻辑的体现。如果它适用于启用和禁用脚本,那么编写一个管理器类,它正是这样做的。引用检查器中的每个脚本。当玩家收集到一些东西时,禁用所有脚本并启用所需的目标脚本。使用枚举。但是肯定有比为每个机制编写一个脚本更好的/其他方法来处理这个问题。如果你这样做,事情会很快失控,而且相当混乱。我敢打赌,90% 以上的效果都可以通过玩数字(缩放、移动速度、跳跃高度等)来实现,那么如果您创建一个实例体现浮动的类来处理这些呢?例如,您描述的将是:public class Powerup{    SpecialEffect SpecialE = SpecialEffect.Shrink; // (enum)    float SizeMod = 0.4f;    float JumpMod = 2.0f;    float SpeedMod = 1.0f; // (changes nothing)    float DamageMod = 1.0f; // (changes nothing)    public void ApplyEffects ()    {        // Do the changes to the player.    }}您可以向检查员公开这些 Powerups 的列表并填写您的元素,或者通过代码以启动的形式进行(我使用许多被解析的 excel 表来做这些事情,允许我在有一个很棒的概述)。
随时随地看视频慕课网APP
我要回答