[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群:375151422        cocos2dx QQ群:280818155

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

 

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

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


相关文章
|
7月前
|
图形学 开发者
【unity小技巧】两种办法解决FPS游戏枪或者人物穿墙穿模问题
【unity小技巧】两种办法解决FPS游戏枪或者人物穿墙穿模问题
298 0
|
7月前
|
图形学
【unity小技巧】实现FPS射击游戏枪武器随镜头手臂摇摆效果
【unity小技巧】实现FPS射击游戏枪武器随镜头手臂摇摆效果
66 0
星际争霸之小霸王之小蜜蜂(八)--蓝皮鼠和大脸猫
星际争霸之小霸王之小蜜蜂(八)--蓝皮鼠和大脸猫
|
前端开发
用canvas让美女沉浸在音符的海洋里
用canvas让美女沉浸在音符的海洋里
|
前端开发 Android开发
android 仿微信表情雨下落!
文章链接:https://mp.weixin.qq.com/s/yQXn-YjEFSW1X7A7CcuaVg 众所周知,微信聊天中我们输入一些关键词会有表情雨下落,比如输入「生日快乐」「么么哒」会有相应的蛋糕、亲吻的表情雨下落,今天就来完成这个表情雨下落的效果。
1730 0
|
图形学
Unity3D游戏-愤怒的小鸟游戏源码和教程(二)
Unity愤怒的小鸟游戏教程(二) 本文提供全流程,中文翻译。Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例) ...
2653 0
|
Java 图形学 Spring
Unity3D游戏-愤怒的小鸟游戏源码和教程(一)
Unity愤怒的小鸟游戏教程 本文提供全流程,中文翻译。Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例) ...
2466 0

热门文章

最新文章

下一篇
开通oss服务