所以我要制作的游戏有这三个类别。感染控制器,然后是两个子类:InfectedClass和BloaterClass。这是在InfectionController中:
n
因此,感染者和Bloater都共享此脚本,但我希望它们具有不同的速度。我遇到了一个问题,如果我在Start()函数中更改NavMeshAgent的速度,就将所有感染单位的速度都更改为同一事物。
所以...我应该只将这种移动方法放在子类中吗?还是有一种方法可以根据父类内部的子类来更改速度?
答案 0 :(得分:1)
那么...我应该只将这种移动方法放在子类中吗?
这将是完全相同的代码吗?那就不要。切勿将相同的代码复制并粘贴到多个位置。
如果我在Start()函数中更改NavMeshAgent的速度,那么我会将所有感染单元的速度更改为同一事物。[...]有没有一种方法可以根据子类更改速度在父类里面?
您尚未显示Start()
方法,但应从子类而不是父类中设置速度值。请注意,Unity魔术名称(如Start
)不能很好地继承。您可以创建自己的方法(从Start()
调用),并标记为virtual
,以允许您的子类覆盖它并获得所需的行为。