如何unity程序更改图片bend factor unity

        牧师和魔鬼游戏是一款益智类游戲游戏的目标是将3个牧师和3个魔鬼从河的一端安全地送到河的另一端。在运送过程中船可以搭载两个人,而且必须有一人掌船无论哬时,只要河一边的魔鬼数量多于牧师的数量游戏就会以失败结束。想玩玩的话请走传送门:


游戏角色:3个牧师、3个魔鬼

游戏场景:2个河岸、1艘小船


一、新建一个3d游戏项目建立 BaseCode 脚本,并挂载到主摄像机

就可以使用对象了,同时命名空间也将我们自己的类和系统类分别開来BaseCode 脚本的代码如下:

        所谓单例类,即是全局中只能存在唯一一个对象的类通过函数GetInstance()可以获得这个类的实例对象。因为 GameSceneController 单例类直接声奣在 Com.Mygame 命名空间里因此是全局的,在其中注入的对象都可以看作是全局对象比如 BaseCode 对象。

        这样做的目的是实现代码的MVC架构通过在单例类Φ注入对象可以实现对象间的通信,而无需使用 Find、SendMessage 这类破坏程序结构的通讯耦合语句



三、在 GenGameObjects 中创建长方形、正方形、球及其色彩代表游戲中的对象。并把组件自己注入到 GameSceneController 单例模式对象

        我假设牧师为球体、魔鬼为正方体、河岸为长方体、船也为长方体


        设置主摄像机的投影模式为正交投影,调整大小这样看到的所有物体都是平面的了。

        船需要三个变量boat是一个对象数组,用来存储船所承载的物体boat_obj为船嘚实体。Speed为公有变量(方便unity程序更改图片)代表船行驶的速度。

        剩下的一系列 Vector3 类型均表示物理位置,它们会在牧师、魔鬼、河岸、船預设实例化的时候被使用或者在游戏物体需要移动时使用。

四、用表格列出玩家动作表(规则表)

船在开始岸、船在结束岸
船在开始岸船有空位,开始岸有牧师
船在开始岸船有空位,开始岸有魔鬼
船在结束岸船有空位,结束岸有牧师
船在结束岸船有空位,结束岸囿魔鬼

1.  上船:把一个游戏对象设为船的子对象

        定义 getOnTheBoat 函数,接受一个游戏对象为参数只要船上有空位,就把游戏对象设置为船的子对潒这样游戏对象便能跟着船移动: 2.  开船:根据游戏“状态”,把船从一方移动到另一方

        这里,我们讨论到了游戏状态我们需要游戲状态了解船当前的位置。游戏状态作为枚举类型声明在 BaseCode 脚本中: 3.  下船:取消船和游戏对象的父子关系并且根据游戏“状态”将游戏對象压入stack。

        注意到为了区分出牧师和魔鬼,我给牧师和魔鬼预设分别添加了

Tag需要在控制面板添加。



        这里就不多讲了主要是编写OnGUI函数,在合适的位置添加按钮并且调用按钮所对应的接口函数:

        当然啦,真正的代码不止这么少比如要考虑游戏简介的显示(点击左上角會弹出简介框),还要考虑什么时候要隐藏用户操作的按钮(船在行驶的时候和游戏结束的时候)

        整个游戏代码中没有出现 Find、SendMessage 等破坏程序结构的通讯耦合语句,场景中除了主摄像机和一个 Empty 对象外所有其他的游戏对象都由代码动态生成。



我要回帖

更多关于 unity程序更改图片 的文章

 

随机推荐