(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中即可
最后效果是这个样子的
这一章写了不少了,关于音乐播放等方面还有很多需要学习的,但这些已经可以满足小源平时的学习和使用了。
今天就先这样吧,嘿嘿。
