2013-12-20 15:51:59 wd791223 阅读数 9451
  • Unity 值得看的500+ 技术内容列表

    Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

Unity3d以场景为单位,UI场景之间的背景音乐要一直播放,而场景切换之间的loading界面,需要在前一个场景执行某个按键进行击发,并在下个场景开始的时候消失。

虽然二者同时公共的需求,但具体还是有所不同的。

一,如何设置背景音乐

1.新建空的游戏物件GlobalUIMusic,添加其tag为 GlobalUIMusic,并增加AudioSource组件,并设置睡醒就播放,并且是循环的。

(注意,物件位置的设定一定是尽量靠近场景的摄像机,摄像机默认有Audio Listener可以监听到声音)

2.绑定脚本:设置该物件加载时不销毁属性。在脚本的Awake()方法中直接调用DontDestroyOnLoad(this.gameObject);就OK。

3.将该物件生成预制体GlobalUIMusicPre(拖拽的时候,一定保证物件是激活状态,或者生成预制体后将预制体设置成激活状态)。该预制体一定放在Assets下的公共位置,每个场景都可以拖拽的。

4.可以干掉GlobalUIMusic了。

5.增加音乐控制脚本:这个是用绑定到每个场景的某个物件上的,一般是绑定在摄像机上。

每个场景有自己的背景音乐局部物件,一定要判断游戏中是否已经存在GlobalUIMusic,如果不存在,再生成新的GlobalUIMusic。否则就会出现每跳转一次场景,就会生成一个GlobalUIMusic,场景就会成为交响乐演奏会了!

 

二,设置加载界面。

1 - 4.创建物件GlobalLoading及其预制体步骤同上。

5.将要绑定给场景摄像机的控制加载的脚本如下,略有不同

 

基本上这样就可以满足需求了。

我写得比较粗糙,欢迎指正!

2014-11-18 13:49:59 driaven 阅读数 4447
  • Unity 值得看的500+ 技术内容列表

    Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

   Unity3D学习
先来介绍一下音频
游戏音频分为背景音乐与环境音乐两种。
Audio   Clip(音频剪辑)有四种音乐格式。
MP3:适合较长音频,作为背景音乐。
Ogg:适合较长音频,作为背景音乐。
Wav:适合较短音频,作为环境音乐。
Aiff:适合较短音频,作为环境音乐。
在主摄像机 属性中单击Add Component 选择Audio 组件单击在选择Audio Source组件。这样声源组件就添加到了主摄像机中了


介绍一下Audio Source(声源组件)



Audio Reverb Zone(混合器组件)介绍



            再添加音乐之前我们先把准备做好。在对象栏的Assets文件夹中创单击Create选择Folder单击就创建出新文件了,然后你可以按F2来给新文件夹改名,也可以单击他直接改名叫Sound(声音)。你可以把你电脑的声音文件直接拖进Sound文件夹里。我们再把suonds里的声音添加到Audio Clip里面,在添加循环Loop就完成了。
          当然背景音乐,你可以添加到主摄像机上,在添加循环就好了。



            相关学习请到http://www.gopedu.com/

2016-01-06 14:41:14 honey199396 阅读数 3474
  • Unity 值得看的500+ 技术内容列表

    Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

1.       在Hierarchy窗口建一个新的摄像机,命名为Bg Camera

2.       新建空游戏体,命名为Background Image,并添加GUI Texture组件


3.       Background ImageInspector面板中点击Layer下拉窗口,选择“Add Layer

4.       在打开的面板中的 User Layer 8(如果你之前没有创建的话默认可以使用的第一个就是它!),添加一个新的层名称为“Background Image


5.       Hierachy面板中选择Background Image,并将你准备的背景图片添加给它,在Pixel Inset面板中设定XYWidthHeight值,使其可以适当的填充界面。 这里我们在代码中设置他的值。


6.       现在将该GameObjectLayer值设置为之前你添加的Background Image

7.       现在在Hierarchy面板中选择Bg Camera,并在Inspector面板中做如下的调整:

A.      取消选择除GUILayer以外的 Flare LayerAudio Listener

B.      Clear Flags设置为Solid Color

C.      设置Depth的值为-2,如果你将主摄像机的Depth设置为-1的话,这里设置的数字比主摄像机的数字小。

D.      设置Culling Mask,第一步选Nothing然后选择Background Image,最终设置好的情况如下:

8.       现在选择另外一个Camera(默认是Main Camera),在Inspector面板中进行如下设置:

A.      Clear Flags设置为“Depth Only

B.      设置Culling Mask,取消选择“Background Image”,这将会导致Culling Mask的选项显示为Mixed…

这将形成GUI TextureBg Camera来进行渲染,其他都由Main Camera进行渲染,且对于其他Camera(例如:其他Camera角度)你想要使用的,只要重复以上两上步骤就可以了!

9.       复制BackGround Image两份,此时有三个background image游戏体。将其关联到background脚本中。



10. 程序部分:

   using UnityEngine;
using System.Collections;

public class Background : MonoBehaviour {

    [SerializeField]
    private Transform background1;

    [SerializeField]
    private Transform background2;

    [SerializeField]
    private Transform background3;

    private GUITexture texture1;
    private GUITexture texture2;
    private GUITexture texture3;

    private Vector3 leftPos = new Vector3 (-1, 0, 0);
    private Vector3 rightPos = new Vector3 (1, 0, 0);

    private float damp = 0.02f;
    void Start () {
        texture1 = background1.GetComponent<GUITexture> ();
        texture2 = background2.GetComponent<GUITexture> ();
        texture3 = background3.GetComponent<GUITexture> ();


        float width = Screen.width;
        float height = Screen.height;
        texture1.pixelInset = new Rect (width / 2, height / 2, 0, 0);
        texture2.pixelInset = new Rect (width / 2, height / 2, 0, 0);
        texture3.pixelInset = new Rect (width / 2, height / 2, 0, 0);

        background1.position = Vector3.zero;
        background2.position = rightPos;
        background3.position = new Vector3 (2, 0, 0);
    }
    
    // Update is called once per frame
    void Update () {
        background1.position -= new Vector3 (1f, 0, 0) * Time.deltaTime * damp;
        background2.position -= new Vector3 (1f, 0, 0) * Time.deltaTime * damp;
        background3.position -= new Vector3 (1f, 0, 0) * Time.deltaTime * damp;

        if (background1.position.x <= leftPos.x) {
            background1.position = rightPos + background3.position;
        }
        if (background2.position.x < leftPos.x) {
            background2.position = rightPos + background1.position;
        }
        if (background3.position.x < leftPos.x) {
            background3.position = rightPos + background2.position;
        }
    }
}

此时背景就很好的运行起来了,无缝衔接,就像一张背景图一样。



--Rocky





2017-04-26 19:21:40 yongh701 阅读数 1675
  • Unity 值得看的500+ 技术内容列表

    Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

游戏里面的背景音乐(Back Ground Music)一直是玩家谈论的话题,从太阁、大航海等暗耻的游戏,到某三剑,总有几首经典的背景音乐触动你的耳朵……BGM这个词,就算文化水平不高的我,经常看AB站的我都知道什么意思了,总有几个自带BGM的角色……所以嘛,背景音乐虽然不是游戏的核心,但绝对是重要的组成部分。在Unity3D里面,整BGM,其实难度也就和Helloworld差不多。为游戏添加BGM只需要几步和简单的脚本,具体如下

先用UGUI布置如下图的场景。其实这根本就不是重点!在Canvas里面2个Button,Text和Slider各1。


同时在Assets中新建文件夹叫Resources,只能叫这个名字,便于发布的时候Unity3D将这个文件夹的内容自动打包,以免出现一系列不好的问题。

然后在Resources导入音乐,如果你现在的机器上没有mp3,可以像我这样拿首Win7自带的示例音乐来凑个数。

当然,如果你是些什么某茄花园版,Ghost装机版,Win7精简版的话……还是自己拷首单曲循环来实验吧……


最后是重点中的重点,新建一个空物体GameObject。并先给它添加Audio Listener,再添加Audio Source两个组件Component,Audio Listener虽然看起来没什么调用,但是是必须的。同时,整个游戏场景这么多物体Object,只能有一个物体有Audio Listener组件。之后,在Audio Clip选择刚才导入的Kalimba.mp3。


然后编写如下的脚本BGM.cs赋予给这个空物体GameObject。

using UnityEngine;
using System.Collections;

public class BGM : MonoBehaviour
{

    public AudioSource audioSource;

    //开始、停止播放
    public void play_stop_music()
    {
        Debug.Log("s");
        if (!audioSource.isPlaying)
        {
            audioSource.Play();
        }
        else
        {
            audioSource.Stop();
        }
    }

    //暂停播放
    public void pause_music()
    {
        if (audioSource.isPlaying)
        {
            audioSource.Pause();
        }
    }

    //改变音量
    public void change_volume(float volume)
    {
        audioSource.volume = volume;
    }

}
如图所示,这个脚本开了个接口public AudioSource audioSource;,将无缝对接给刚才设置的组件,这里不懂的,可以参考《【Unity3D】同场景物体传值与Vector》(点击打开链接)。同时,各个函数将被赋予2个Button与Slider,这里不懂的,可以参考《【Unity3D】场景切换、UGUI组件事件、开始游戏与关闭游戏》(点击打开链接)。


编译、发布,你就可以与BGM愉快地玩耍。

2020-02-22 15:06:43 netbar4 阅读数 115
  • Unity 值得看的500+ 技术内容列表

    Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

导入游戏资源包:http://www.vowei.com/course/966/lesson/list

 

把prefabs里的环境拖到层次里 :

 

TIP:把window-rendering-lighting settings-auto generate取消勾选后,把environment添加进hierarchy就不会自动渲染不会卡了

 

 添加背景音乐并且Loop,不过之后取消勾选play on wake,不然每次运行都会播放音乐 

 新建gameobject-add component加入声源

 

 实现player移动:project settings里的input封装了player移动

 

写脚本,注释有解释

 

在player里add component的rigidbody(实物)

把drag写成infinity人物不会往下掉,因为是无限大的拉力,还有冻住坐标Y

 

 继续完善脚本

 

把脚本拖给player,于是可以移动了呢

unity3d 加载进度条

阅读数 1475

没有更多推荐了,返回首页