概述
(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中即可
最后效果是这个样子的
这一章写了不少了,关于音乐播放等方面还有很多需要学习的,但这些已经可以满足小源平时的学习和使用了。
今天就先这样吧,嘿嘿。
最后
以上就是羞涩缘分为你收集整理的自学Unity3D游戏开发(7)的全部内容,希望文章能够帮你解决自学Unity3D游戏开发(7)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复