GameFramework篇:StarForce显示实体(Entity)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_15020543/article/details/86481567

本篇博客来说一下StarForce里面的实体,StarForce里面实体的数据和逻辑是分离的,通过组件的形式组装到实体身上。

我们来看SurvivalGame类,这个是游戏逻辑类

就做了一件事,每隔一秒生成一个实体,细化起来就是,拿到陨石表,然后调用ShowAsteroid函数来实例化陨石

那我们就来看ShowAsteroid函数

他是EntityComponent的拓展方法

 参数为陨石数据类AsteroidData,在执行构造函数的时候对其相关属性进行了赋值

那么它所封装的ShowEntity类呢

第一个参数,陨石的实体逻辑类(可以看成AI)

他最终父类为EntityLogic,中间做了两层封装,主要是伤害计算和初始化之类的,大家可以自己看看,所以大家可以把实体当成我们的GameObject,因为继承自Mono,所以Unity自带的生命周期方法也都可以用,不过学都学了,我们不妨学习人家的思想,逻辑和数据相分离

第二个参数,EntityGroup,他是存储实体的组,需要在Entity模块设置,不然会报错,这一点上,和UI的显示有些类似

第三个参数,资源优先级

第四个参数,就是刚刚我们所构造的实体数据了,里面存储了实体信息,方便内部封装的使用

在往里走就是底层的加载资源文件,显示GameObject了,大家可以自己去看

总结

我们可以感觉到,StarForce在显示实体这里做了很多封装,可能写的时候很麻烦,但用起来真的很舒服,可以说一劳永逸

在大家进行开发的时候,有这两种实例化实体方法供调用,也可以参考StarForce里的封装方法策略,找出最适合自己项目的策略

猜你喜欢

转载自blog.csdn.net/qq_15020543/article/details/86481567