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

简介:

继续水果忍者制作,写一下今天的学习心得,主要就是实现了一个切水果的刀光以及声音的实现。

主要效果                                                                                                                     


   

 实现步骤                                                                                                                    

1.实现划线

原理:主要是用到Effet->Line Renderer组件(线渲染器),这个可以实现画出线条,具体可以参考官方的文档:http://game.ceeger.com/Script/LineRenderer/LineRenderer.html,也可以参考:http://blog.csdn.net/zuoyamin/article/details/8997729,下面会给出代码,我这里是给空物体GameObject动态添加的LineRenderer组件,然后实现绘图,下面我会贴出代码,注释掉的部分就是划线部分,下面是效果图。


2.制作刀光贴图的预设物体,并且带有声音

创建一个GameObject,命名knifeRay,添加上AudioSource组件,给他赋予一个刀光的贴图,设置好knifeRay的宽高比,然后直接拖放到Project中,就做成预设。


这里声音源我要说一下,关于2D和3D的声音,因为MainCamera上挂着AudioListener的组件,相当于人的耳朵,能够听到场景的声音,如果MainCamera离生源距离远,那么听到的声音就弱,反之则强,就跟3D现实中一样,如果是2D生源则跟Listener的远近是无关的,无论在哪儿,声音都是一样的效果。

关于声源的设置是在点击声音文件之后,然后在属性面板中有这个选项,只要将3D勾去掉就变成2D声音了。


3.源码

using UnityEngine; using System.Collections;  public class knifeRay01 : MonoBehaviour {  	//选择颜色 //    public Color mycolor; 	 	public GameObject myRay;  //这个是刀光的prefab      private Vector3 firstPosition;     private Vector3 secondPosition;     private Vector3 middlePosition;      private bool isClicked = false;      private LineRenderer lineRenderer; 	 	private  GameObject rayGameObject;  	// Use this for initialization //	void Start () { //        lineRenderer = gameObject.AddComponent<LineRenderer>();//添加一个划线的组件 //        //设置颜色和宽度 //        lineRenderer.material.color = mycolor; //        lineRenderer.SetWidth(0.1f, 0.1f); //	} 	 	// Update is called once per frame 	void Update () {          bool isMouseDown = Input.GetMouseButton(0);//判断鼠标是否左击          if (isMouseDown && !isClicked)         {             //屏幕坐标转化成空间坐标             firstPosition = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, 1));                  //            lineRenderer.SetVertexCount(1); // //            lineRenderer.enabled = true; //            lineRenderer.SetPosition(0,firstPosition);              isClicked = true;         }          else if (isMouseDown)         {             secondPosition = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, 1));  //            lineRenderer.SetVertexCount(2); // //            lineRenderer.SetPosition(1, secondPosition);         } 		  		//鼠标提起         if (Input.GetMouseButtonUp(0))         {             isClicked = false;              secondPosition = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, 1));  //            lineRenderer.SetVertexCount(2); // //            lineRenderer.SetPosition(1, secondPosition); 			 			 			middlePosition = (firstPosition+secondPosition)/2; 			 			float angle = Mathf.Atan((secondPosition.y-firstPosition.y)/(secondPosition.x-firstPosition.x)); 			//创建划痕,这里旋转的是幅度 			rayGameObject = Instantiate(myRay,middlePosition,Quaternion.AngleAxis(angle*180/Mathf.PI,Vector3.forward)) as GameObject; 		 			Destroy(rayGameObject,1.0f);//一秒钟就去掉         } 	} } 

==================== 迂者 丁小未 CSDN博客专栏=================

MyBlog:http://blog.csdn.net/dingxiaowei2013             MyQQ:1213250243

Unity QQ群:858550         cocos2dx QQ群:280818155

====================== 相互学习,共同进步 ===================

 

转载请注明出处:http://blog.csdn.net/dingxiaowei2013/article/details/18527897

欢迎关注我的微博:http://weibo.com/u/2590571922















本文转蓬莱仙羽51CTO博客,原文链接:http://blog.51cto.com/dingxiaowei/1366136,如需转载请自行联系原作者

相关文章
|
图形学
Unity Particle System 制作刀光特效
Unity Particle System 制作刀光特效
441 1
Unity Particle System 制作刀光特效
|
5月前
|
搜索推荐 算法 C#
【Unity 3D】C#中冒泡排序、选择排序、插入排序等算法的详解(附源码 超详细)
【Unity 3D】C#中冒泡排序、选择排序、插入排序等算法的详解(附源码 超详细)
51 1
|
5月前
|
C# 图形学
【Unity 3D】元宇宙案例之虚拟地球信息射线实战(附源码、演示视频和步骤 超详细)
【Unity 3D】元宇宙案例之虚拟地球信息射线实战(附源码、演示视频和步骤 超详细)
50 0
|
5月前
|
人工智能 自然语言处理 区块链
【Unity 3D】元宇宙概念、应用前景、价值链等概述
【Unity 3D】元宇宙概念、应用前景、价值链等概述
52 0
|
5月前
|
vr&ar C# 图形学
【Unity 3D】VR飞机拆装后零件说明功能案例实战(附源码和演示视频 超详细)
【Unity 3D】VR飞机拆装后零件说明功能案例实战(附源码和演示视频 超详细)
40 0
|
5月前
|
vr&ar C# 图形学
【Unity 3D】VR飞机动态拆装及引擎开关控制案例(附源码和演示视频 超详细)
【Unity 3D】VR飞机动态拆装及引擎开关控制案例(附源码和演示视频 超详细)
40 0
|
5月前
|
vr&ar 图形学
【Unity 3D】VR飞机起飞喷火游戏案例实战(附源码和演示视频 超详细)
【Unity 3D】VR飞机起飞喷火游戏案例实战(附源码和演示视频 超详细)
56 0
|
5月前
|
vr&ar 开发工具 图形学
【Unity 3D】使用EasyAR实现单图识别的AR增强现实功能(附实现步骤)
【Unity 3D】使用EasyAR实现单图识别的AR增强现实功能(附实现步骤)
90 0
|
5月前
|
图形学
【Unity 3D】3D游戏跑酷小子实战教学(附源码和步骤 超详细)
【Unity 3D】3D游戏跑酷小子实战教学(附源码和步骤 超详细)
184 0
|
5月前
|
开发框架 数据可视化 前端开发
【Unity 3D】GameFramework、QFramework框架简介及应用实战(超详细 附源码)
【Unity 3D】GameFramework、QFramework框架简介及应用实战(超详细 附源码)
142 0