先直接看效果吧,注意黄色的球:
可以看到黄色的球会越来越多,这边只是简单做了个规则,让他在一定时间呢复制一个出来,后面会越来越庞大。
先来看看他简单的实现逻辑。
首先,还是定义一个繁殖病毒类:
创建病毒还是走我们之前说的创建病毒的通用方法,这里有一个逻辑,如何才能在当前病毒直径范围内生成球体,我们先直接上代码:
protected void CopyVirus(Action success)
{
Vector3 p = Random.insideUnitSphere;
Vector3 pos = _transform.position + p.normalized * (0.1f + _virusData.Radius * 2);
var prefab = _virusService.CreateVirus(_virusData.Id, _transform.position);
var doMove = prefab.transform.DOMove(pos, 1.0f);
doMove.onComplete = () =>
{
success?.Invoke();
};
}
Random.insideUnitSphere:返回半径为1的球体内的一个随机点。
另外我们也加了一个简单的平移动画,使得看起来不是太僵硬。
这个实现方式有点简陋,但目前先只能这样了,后面再慢慢调整细节。
今天的实现就到此为止了。
总结:到目前为止,我们已经实现了3中形态的病毒的各自表现形态,虽然资源很丑,实现方式也不完善,但功能逻辑是ok的了。
坚持到现在也不容易,都是每天晚上肝到12点,甚至凌晨。。主要是时间太少。扛不住,我得多休息休息。
接下来的主要工作就是放在各种道具的实现上了。加油。
传送门:独立游戏开发–索引