欢迎光临散文网 会员登陆 & 注册

今年的情人节用Unity定制猫猫后院当礼物吧

2020-02-14 11:02 作者:皮皮关做游戏  | 我要投稿

作者:Yumir


闹脾气正是亲热的表现,察觉动静,抱起亲热,笑眯眯地卷成一团,亲近暖阳,稍作午休。

冬日午后的猫猫,喵呜喵呜叫着往腿上一窝,咕噜咕噜开始打呼噜。

这个不能见面的情人节,给对方一个程序员特色礼物——定制游戏吧。

看着怀里的猫浮现了这个想法,当然不是指情人节礼物啦,是指“我可以自己写一个猫咪后院”这个想法。

这次的素材准备的比较简单,游戏也是简化版的,因为是定制游戏所以可以随心所欲啦~

最简单的放置养猫游戏就是在游戏里面随机位置生成猫咪,但是这样以来就会有猫猫腾空这种鬼畜状态,所以我做的是固定几个位置可以生成猫猫,直到猫猫离开才会出现新的猫,大致内容如下。

1、每隔一段时间判断是否还有空位和猫粮,有则生成新猫。

2、猫每隔一段时间消耗猫粮,如果没有猫粮了,猫就离开。

3、每只猫有游玩时间,时间到了不管有没有猫粮都会离开。

首先我们需要一个后院~就是一张喜欢的背景图,然后在背景图上面设置可以生成猫猫的坐标点,为了方便管理我新建了一个空白游戏对象作为所有坐标点的父物体,在坐标点的Inspector面板点击左边的正方体选择一个图标可以在场景中更方便观察我们设置的坐标点。

再来我们要生成猫猫,所以我们得先有猫咯,新建一个2D图片精灵,再添加一个用来控制这只猫猫的脚本,这个脚本我们要编写猫猫做的三件事:进入、吃饭、退出。将这个游戏物体 保存成预制体,就是猫的原型啦。

整个后院的猫猫的进出需要另一个脚本进行管理,我新建了一个Game Manager脚本,挂载在摄像机上,设置为单例模式。此外还管理着我们的猫粮和小鱼干,猫在院子里吃猫粮,留下小鱼干,都是需要在这个脚本上记录的。

为了让猫猫随机出现在空位上,我用了一个随机数,在当前的空位中随机一个位置生成猫咪,并且将这个猫咪的父物体设置为另一个空物体,对应的,在猫离开的时候又回到空位置的父物体。

public void CreateCat()

    {

        if (catPos.transform.childCount > 0)

        {

            Transform tran =  catPos.transform.GetChild(Random.Range(0, catPos.transform.childCount));

            GameObject cat = Instantiate(catPre, tran);

            cat.GetComponent<CatPre>().LoginIn();

            tran.parent = catPoint.transform;

        }

    }

public void OutCat(CatPre cat)

    {

        cat.transform.parent.parent = catPos.transform;

        fish += cat.fish;

        Destroy(cat.gameObject);

    }

 

在游戏中多次需要用到计时器,所以我使用的是调用系统的time来判断时间的方法,并且写了一个方法,供不同的位置调用。

public bool Timer(ref float lastTime,float theTime)

    {

        if (Time.time-lastTime>=theTime)

        {

            lastTime = Time.time;

            return true;

        }

        return false;

    }

 

当调用上面的计时器方法得到true返回值的时候就可以执行对应的动作,比如猫猫吃饭或者离开后院一个简单的放置猫咪游戏的代码就完成啦,当然你可以增加更多的装饰,比如更多的UI效果,猫猫的动态,更多猫猫和庭院等等。

我把我的项目上传到百度网盘,期待你的锦上添花,找到喜欢猫猫的另一半哦。

链接:https://pan.baidu.com/share/init?surl=xcZhNJcMVvy7SLm3Snf6TQ

提取码:7a3h

至于礼物里面的定制内容,当然要自己想啦,有问题可以到群里提问讨论哦。

欢迎加入游戏开发群欢乐搅基:869551769

有意向参与线下游戏开发学习的读者可戳这里进一步了解:http://www.levelpp.com/

今年的情人节用Unity定制猫猫后院当礼物吧的评论 (共 条)

分享到微博请遵守国家法律