unity3d水果忍者制作

接着昨天的更新,代码实现模块的理解和实现,这里对ui和声音部分就不做过多解释,主要讲解游戏场景内代码的实现功能:

在一个游戏制作过程中预制体的巧妙使用和删减可以帮我们节省大量的时间和存储空间以及代码量,在切水果的游戏实现中体现的更为突出,水果需要不断地更新和被切后水果的删除这些利用预制体都能给我们减少大量的工作量。所以在制作过程中我们需要把各类水果和刀光剑影以及奖励提示图标都设置为预制体来让我们可以在过程中不断创建引用和删除。

还有切割成两半的预制体,以供我们在切割到水果后被分成两块调用。

好了接下来我们开始切割水果以及分数反馈代码的梳理和实现部分:

下面展示一些 内联代码片

 void Update () {if (Input.GetMouseButton(0)){//OverlapPoint方法用于检测2D场景中参数坐标上所有的碰撞体,这里我们的参数是鼠标点击的位置,//因此我们用于判断是否点击到了水果来完成信息的反馈更新if (Collider.OverlapPoint(Camera.main.ScreenToWorldPoint(Input.mousePosition))){//cs0.是仓鼠对象,这里是玩家有五条生命格,如果切到了仓鼠则减去一条生命,如果不是的话则进入加分和其他的一些操作。if (name != "cs0.(Clone)"){//jpg金苹果 作为游戏彩蛋切割到了加二十分if (name == "jpg0.(Clone)"){GameObject add = Instantiate(GoldTip) as GameObject;//复制彩蛋特校为add对象add.transform.position = transform.position;//add彩蛋对象位于金苹果被切的位置,且在一秒后删除//(这里的逻辑和方法希望大家能够仔细的去理解因为后面的代码实现功能都有这几句代码的影子)Destroy(add, 1);                                AudioSource.PlayClipAtPoint(GoldClip, transform.position);ScoreManage1.scorenumber+=20;//加20分在计分类scoremanage1的静态变量scorenumber中,同时播放一次彩蛋的音乐提示}else//如果不是金苹果彩蛋对象而是普通的水果则加一分ScoreManage1.scorenumber+=1;}else//如果是仓鼠的话则扣去一条生命值且播放扣除生命的音乐提示{AudioSource.PlayClipAtPoint(FailClip, transform.position);LifeManager1.life--;}
//下面两句是将预制体调用起来的代码,大家只要理解刚刚创建金苹果的彩蛋对象下面都是一样的功能实现,首先是刀光的预制体复制;
//instantiate方法里参数一:是预设 参数二:实例化预设的坐标(即被切的水果位置出现刀光)  参数三:实例化预设的旋转角度(为了游戏美观选择一定角度的随机数)
//Quaternion.AngleAxis的第二个参数就是旋转轴,意思是在垂直相机平面的轴为旋转轴随机度数旋转knifeRay = Instantiate(KnifeRay, transform.position, Quaternion.AngleAxis(Random.Range(-30f, 30f), Vector3.back)) as GameObject;Destroy(knifeRay, 1);//以下代码为创建水果代码同上不做赘述,写好后挂载在所有的水果预制体上即可//下面两个apple变量是水果切除后原来的完整水果的预制体删除,同时将切成两半的水果预制体复制出来达到切除显示效果。Destroy(this.gameObject);GameObject apple1 = Instantiate(Apple1, transform.position, Quaternion.AngleAxis(Random.Range(-30f, 30f), Vector3.back)) as GameObject;GameObject apple2 = Instantiate(Apple2, transform.position, Quaternion.AngleAxis(Random.Range(-30f, 30f), Vector3.back)) as GameObject;apple1.GetComponent<Rigidbody2D>().velocity = new Vector2(Random.Range(-10, -5),Random.Range(2,3));apple2.GetComponent<Rigidbody2D>().velocity = new Vector2(Random.Range(10, 5), Random.Range(2, 3));GameObject wzt = Instantiate(wz[Random.Range(0, 3)]) as GameObject;wzt.transform.position = transform.position;//wzt是切除的果汁特效,这几句代码虽然很长但是理解了的话其实都是一个方法多次使用最后把所有的预制体都删除整个的游戏切除水果代码就完成了。Destroy(wzt, 1);Destroy(apple1, 2);Destroy(apple2, 2);}}}

整个游戏执着过程中因为有教材原素材所以工作量比较小,个人认为这一段就是整个游戏的核心代码了,再者就是对于生命值和分数的信息反馈和UI更新代码了这里不做过多赘述给大家参考一下就好,因为我只是参考了教材的这一段代码剩下的部分都是按照自己的想法和代码实现的,感觉有很多种方法和代码能实现难度不是很大所以不做过多赘述大家参考一下自己去写自己喜欢的代码就好。

下面展示一些 内联代码片

public class ScoreManage1 : MonoBehaviour {public Image[] score;public Sprite[] number;public static int scorenumber = 0;// Use this for initializationvoid Start () {}public void UpdateScore(){score[0].GetComponent<Image>().sprite = number[scorenumber / 100];score[1].GetComponent<Image>().sprite = number[scorenumber / 10];score[2].GetComponent<Image>().sprite = number[scorenumber % 10];}// Update is called once per framevoid Update () {UpdateScore();}
}
public class LifeManager1 : MonoBehaviour {public Image[] lifeImage;public int lifeLength;public static int life=5;// Use this for initializationvoid Start () {lifeLength = lifeImage.Length;       }public void SetLife(){for(int i=0; i<5-life;  i++){lifeImage[i].color = Color.red;}          }// Update is called once per framevoid Update () {SetLife();if(life==0){Application.LoadLevel("gameover");}}
}

好了这就是整个游戏里代码部分了,主页面的ui代码也很简单大家自己写一下就好。

unity3d水果忍者制作相关推荐

  1. unity水果忍者制作

    unity水果忍者制作 这几天学了一下切水果游戏的手游制作,大致了解操作运行过程,还在制作当中就先写一篇自己的思路吧: 首先收集和制作好ui素材,这些是一个项目开始的基石也是整个游戏最直观的东西,然后 ...

  2. [Unity3d]水果忍者-声音和刀光的实现

    继续水果忍者制作,写一下今天的学习心得,主要就是实现了一个切水果的刀光以及声音的实现. 主要效果 实现步骤 1.实现划线 原理:主要是用到Effet->Line Renderer组件(线渲染器) ...

  3. [unity3d]水果忍者-界面搭建

    今天开始用Unity3D做一下水果忍者的游戏,Keep study very day! 效果图: 实现步骤: 1.贴图的创建 , 这里的Pixel Inset中X,Y,Width,Height是贴图的 ...

  4. [Unity3d]水果忍者-切水果功能

    继续今天的切水果游戏之切苹果的实现,主要功能就是,有一个苹果放在场景中,然后通过手滑过苹果,就将苹果切成两半,从原理上分析,就是制作两张贴图,分别表示分开的两半苹果,然后在当前位置出现,并且给这两半苹 ...

  5. Unity制作《水果忍者》刀光特效

    最近在学习Unity中的LineRenderer组件的时候,突发奇想,想到怎么实现水果忍者的刀光特效 制作起来并没有想象的那么难,只是想让其逼真起来的话需要一张好的材质贴,博主找了一张不是很完美的贴图 ...

  6. 前端制作水果忍者小游戏

    演示地址​​​(第一次打开有点卡哦)水果忍者小游戏http://kiss-rebounds.gitee.io/fruitninja-game/ 水果忍者小游戏 - 经典版点击这里 实现了得分和连击等信 ...

  7. 用Python写了一个水果忍者小游戏

    点击上方"菜学Python",选择"星标"公众号 超级无敌干货,第一时间送达!!! 水果忍者的玩法很简单,尽可能的切开抛出的水果就行. 今天小五就用python ...

  8. html 水果忍者 教程,新手手册:《水果忍者》游戏设定详解

    您可能感兴趣的话题: 水果忍者 核心提示:Halfbrick Studios制作.<水果忍者Fruit Ninja>是一款简单的休闲游戏,目的只有一个--砍水果! Zen:图标为苹果的Ze ...

  9. Unity 游戏实例开发集合 之 CutFruit (切水果(水果忍者)) 休闲小游戏快速实现

    Unity 游戏实例开发集合 之 CutFruit (切水果(水果忍者)) 休闲小游戏快速实现 目录 Unity 游戏实例开发集合 之 CutFruit (切水果(水果忍者)) 休闲小游戏快速实现 一 ...

最新文章

  1. java提交数据到另一个页面_JS实现把一个页面层数据传递到另一个页面的两种方式...
  2. RandomAccessFile r rw rws rwd之间的区别
  3. lisp 河道水面线计算_水面漂浮泡沫生活垃圾隔离拦载浮筒使用方法
  4. Multi-Range Read (MRR)原理
  5. 乘法运算-快速傅里叶变换
  6. SAP Cloud Application Programming CatalogService 默认的路径
  7. mailcore -- Mail port
  8. 可以在中断服务程序执行malloc吗?
  9. pyhton学习,day1作业,用户名密码登录模块
  10. windows10中安装anaconda和pytorch
  11. UVa 10970 - Big Chocolate
  12. 机器学习编译入门课程学习笔记第一讲 机器学习编译概述
  13. [免费专栏] ATTACK安全之Android ICMP隧道攻击原理与入侵检测实践
  14. 共享没有计算机网络连接不上去,苹果usb共享给电脑连接不上怎么办
  15. 年末展望:Oracle 对 JDK收费和.NET Core 给我们的机遇
  16. 高德经纬度、百度经纬度、标准经纬度相互转换(VB.NET)
  17. 2020杭州区块链国际周圆满闭幕,这一份金句集锦不能错过
  18. QQ空间g_tk算法的JS脚本的获取和分析
  19. “日不落”的大学数据库原理课程设计——机票预订信息系统
  20. 插值、拟合、线性和非线性的区别

热门文章

  1. ps2021没法用神经元滤镜,ps2021版神经滤镜能用吗
  2. android+后台健身管理系统
  3. [转]xna 3.1 to xna 4.0
  4. BFD与OSPF联动
  5. 关于基数(即:索引值)和序数的两者区别
  6. Deep Decentralized Multi-task Multi-Agent Reinforcement Learning under Partial Observability
  7. 【Leetcode】312. Burst Balloons
  8. 计算机网络安全倡议书,文明上网倡议书
  9. joomla+连接不上mysql_配置joomla数据库mysql
  10. 从两边往中间流水灯c语言程序,单片机控制LED流水灯从中间向两边,从两边向中间...