例如,似乎人们(初学者?)在Unity中使用脚本的最常见方式是创建“单一用途”类型脚本并将其附加到实际游戏对象(通过单击并将其拖动到脚本组件).以这种方式,似乎很少用于继承.或许我倒退了.我应该在附加到游戏对象之外创建类/继承,然后只将脚本附加到引用那些外部类的游戏对象吗?我相信你们中的一些人可能只会说“做你想做的事!”或“做什么有效”,但我不想从糟糕的编码方法开始,只是为了最后重构它.
我很困惑的另一件事是Unity中的类实例.无论出于何种原因,似乎我可以使用像Animator这样的内置类而无需实例化它[我几乎从未见过一个=新的Class();然而这些类并不是静态的.这是如何运作的?如果我构建自己的游戏对象引用的类,我是否必须创建与它们一起工作的实例,或者这一切都是由引擎在引擎盖下完成的?
所有这些脚本中的游戏对象(编辑器中的实际项目)在哪里?是否有为每个游戏对象制作的类?如果是这样,我如何找到它并偷看它发生了什么?
解决方法 Unity中的继承与其他框架中的方式完全相关.考虑你想要实现两种类型的敌人,它们都有一些共同的行为(步行,攻击),并且都有特定的行为(A可以飞行,但B使用寻路攻击).您将设计一个继承自MonoBehavIoUr的抽象Enemy类(btw脚本继承自MonoBehavIoUr,继承自Behavior,..,因此继承就在那里),然后每个继承自Enemy.
这对于维护以及使用你的敌人更好. FlyingEnemy和PathEnemy可以存储在Enemy类型的集合中,允许您迭代它以执行常见的敌人行动(如死亡).
界面也非常有用,因为你可以有一个击中关卡中任何东西的射d.射d将检查命中的GameObject是否包含Idamageable组件,如果是,则调用接口的damage方法.这允许在不知道它是玩家,敌人还是墙壁的情况下击中任何东西.每个都在自己的脚本中实现接口,该方法只执行相关 *** 作.
如果没有这个,你的射d必须通过一长串检查才能知道它是这个还是那个.
总结以上是内存溢出为你收集整理的Unity如何与C#类一起使用全部内容,希望文章能够帮你解决Unity如何与C#类一起使用所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)