独立游戏开发(八)-- 繁殖病毒实现

先直接看效果吧,注意黄色的球:
在这里插入图片描述
可以看到黄色的球会越来越多,这边只是简单做了个规则,让他在一定时间呢复制一个出来,后面会越来越庞大。
先来看看他简单的实现逻辑。
首先,还是定义一个繁殖病毒类:
在这里插入图片描述
创建病毒还是走我们之前说的创建病毒的通用方法,这里有一个逻辑,如何才能在当前病毒直径范围内生成球体,我们先直接上代码:

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点,甚至凌晨。。主要是时间太少。扛不住,我得多休息休息。
接下来的主要工作就是放在各种道具的实现上了。加油。

传送门:独立游戏开发–索引

猜你喜欢

转载自blog.csdn.net/C_yuxuan/article/details/114650110