使用 Unity 创建一个不断增长的核心
最终渲染
首先创建一个空的Unity工程,名字大家喜欢unity 实例化预制物体,这里我把我的工程命名为:Made InChina(不要问我为什么,任性,2333):
然后创建两个球体预制件,明确命名为“Protons”和“Neutrons”。 为什么? 刚刚百科:
原子核简称为“原子核”。 它位于原子的核心,由质子和中子两种粒子组成。
PS:顺便给它们分别加一个材质,修改一下颜色,这样就可以区分了。
核子脚本
我们需要一个脚本让这个核慢慢长大。 现在创建一个名为“Necleon”的脚本3D道具,放到“Proton”和“Neutron”预制件上(注意这一步,因为没有图片),脚本如下:
这里我们添加了一个浮点型参数“attractionForce”,以及一个刚体型参数“body”。 它们将用于移动对象。
这段代码非常简单。 相信对于这个脚本,您没有什么不明白的。 唯一有点难的是这行代码:
这段代码是什么意思? 很简单,我们测试一下不就知道了吗?
1.在Hierarchy中留下一个如下图所示的对象:
2、修改脚本中AttractionForce的值:
3.修改中子的位置:
4、点击播放,看到如下效果:
在这行代码中,使用了 Rigidbody.AddForce() 函数。 此函数对具有刚体组件的对象施加方向力。 这个应该不难,就不多解释了。
如果看到小伙伴不知道这里是怎么回事像素游戏素材,那我们一步一步来分析吧! !
PS:写的好乱,不知道大家能不能看懂,不懂的可以问我。
NucleonSpawner脚本
现在,我们需要一个脚本来创建我们的预制件。 因此,让我们创建一个脚本并使用以下代码将其命名为“NucleonSpawner”:
然后创建一个空对象,并在对象中添加“NucleonSpawner”脚本unity 实例化预制物体,最后配置参数,如下图所示:
我们要每隔一段时间孵化我们的质子和中子,所以需要一个计数器,代码如下:
代码分析
首先,timeSinceLastSpawn这个参数其实就是一个计数器,timeBetweenSpawns就是所谓的孵化间隔。 之前我们把timeBetweenSpawns的值设置为0.05,那么这段代码的意思就是每0.05调用一次SpawnNucleon()函数。
好了,到此结束,让我们把SpawnNucleon()函数的代码弄上来。 代码如下:
代码分析
第26行的意思是从nucleusPrefabs中随机抽取一个prefab,然后在第27行实例化这个prefab,这个功能的代码大家应该不难吧? 唯一不明白的是Random.onUnitSphere()函数,直译为:在单位球体上。 这意味着什么?
这意味着在半径为1的球体表面的任意一点实例化一个中子或质子。因此,我们实例化质子或中子的范围是在半径为1的球体表面(有点左右,希望你可以理解)。
好了,完成了。 然后单击“播放”按钮查看最终效果。
是不是觉得这篇文章很简单? 其实我也这么认为。 虽然用处不大,但个人觉得挺好玩的(任性)。 明天,我会告诉你一些与数学有关的知识。
关于 Unity 墙外的世界
Unity墙外的世界---这里有来自国外的经典案例、教程和文章,在这里你将学习到更高级的Unity开发知识。
更多经典敬请期待