自学Unity3D游戏开发(7)

(1)碰撞判断

 有时候我们会需要判断两个物体是否碰撞来进行一些操作,而碰撞的一系列操作是在void OnCollisionEnter()函数中进行的

using UnityEngine;
using System.Collections;
using UnityEngine.UI;

public class pengzhuang : MonoBehaviour {

	// Use this for initialization
	void Start () {
	
	}
	
	// Update is called once per frame
	void Update () {
	
	}
    void OnCollisionEnter()
    {
        GameObject.Find("Canvas/Text").GetComponent<Text>().text = "碰撞";

    }
}

新建一个cube(不是预制体cube),不要添加刚体,将这个脚本附给cube,运行程序,当子弹打到这个cube,或者其他cube触碰到它时,会显示“碰撞”。

我们给它加上刚体试试,运行游戏时,cube坠落碰到地面,也会出现“碰撞”。

这是比较简单的碰撞判定。

(2)button控件

using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class button : MonoBehaviour {

	// Use this for initialization
	void Start () {
	
	}
	
	// Update is called once per frame
	void Update () {
        
	}
    void OnGUI()
    {
        if (GUI.Button(new Rect(180, 100, 60, 30), "退出"))
            Application.Quit();
        if (GUI.Button(new Rect(280, 100, 60, 30), "重新开始"))
            Application.LoadLevel("1");
    }
}
这里通过GUI.Button(new Rect(180,100,60,30),"Text")来申请一个按钮,Rect前两个参数是按钮在频幕上的坐标,后两个是按钮的长宽。

Application.Quit();是退出,这个只有在将工程导出成为一个exe可执行程序或者其他程序时才可用,Application.LoadLeval("1");是加载场景“1”

这里要说一下场景,一个游戏会有多个场景,除了初始场景外,你还可以创建新场景,以及保存场景,都在菜单栏File里,命名保存以后会有这样的东东

这就是我命名为“1”的场景,意思是点击按钮后会重新加载场景“1”,也就是重新开始的意思咯。

(3)创建exe可执行文件

点击File->Build Setting,会弹出下面页面


喔,小源听的网易云音乐被截下来了,不过没关系,嘿嘿

这里可以选择,导出PC端或者移动端或者其他的,我们要创建的是exe文件,自然选择PC端。

初始时上方的框框里是没有东西的,你要“Add Open Scenes”,可以添加多个场景,通过改变场景顺序来实现你导出的游戏的场景播放顺序。

(4)其他控件

背景音乐也是很重要的一块,一般来说,在Main Camera设置中点击“Add Component”,选择Audio,Audio Source,一般会自动出现一个Audio Listener,这个相当于“耳朵”,如果Main Camera没有出现耳朵的话,也可以在同一个地方手动添加耳朵。一个程序可以有Audio Source,这个是添加音乐的,但只能有一个“耳朵”

先将音乐文件添加到工程文件中,再找到这个音乐,拖拽到Audio Clip中就行了,下方有其他设置如默认的“运行时播放”,还有下面的“循环”等等。

在脚本中也可以控制音乐播放或者暂停。也可以调整音量,小源把它添加在manyou脚本中了

在脚本前面定义AudioSourse对象

    public AudioSource music;//音乐文件
    public float musicVolume;//音量
然后添加函数

 void OnGUI()
    {

        //播放音乐按钮
        if (GUI.Button(new Rect(10, 10, 100, 50), "Play music"))
        {
            //没有播放中
            
            if (!music.isPlaying)
            {
                //播放音乐
                music.Play();
            }


        }

        //关闭音乐按钮
        if (GUI.Button(new Rect(10, 60, 100, 50), "Stop music"))
        {

            if (music.isPlaying)
            {
                //关闭音乐
                music.Stop();
            }
        }
        //暂停音乐
        if (GUI.Button(new Rect(10, 110, 100, 50), "Pause music"))
        {
            if (music.isPlaying)
            {
                //暂停音乐
                //这里说一下音乐暂停以后
                //点击播放音乐为继续播放
                //而停止以后在点击播放音乐
                //则为从新播放
                //这就是暂停与停止的区别
                music.Pause();
            }
        }

        //创建一个横向滑动条用于动态修改音乐音量
        //第一个参数 滑动条范围
        //第二个参数 初始滑块位置
        //第三个参数 起点
        //第四个参数 终点
        musicVolume = GUI.HorizontalSlider(new Rect(160, 10, 100, 50), musicVolume, 0.0F, 1.0F);

        //将音量的百分比打印出来
        GUI.Label(new Rect(160, 50, 300, 20), "Music Volueme is " + (int)(musicVolume * 100) + "%");

        if (music.isPlaying)
        {
            //音乐播放中设置音乐音量 取值范围 0.0F到 1.0
            music.volume = musicVolume;
        }
    }

在脚本中会出现一个music框,是AudioSource类型的。


将下面AudioSource控件拖进Music中即可

最后效果是这个样子的






这一章写了不少了,关于音乐播放等方面还有很多需要学习的,但这些已经可以满足小源平时的学习和使用了。

今天就先这样吧,嘿嘿。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值