0评论

Unity中开场动画设置

文章来自CSDN博客 2018-10-26 34浏览

想免费获取内部独家PPT资料库?观看行业大牛直播?点击加入腾讯游戏学院游戏开发行业精英群711501594

任何一款游戏都有自己独特的开场动画,这样才能树立游戏的形象,这篇文章就给大家分享在Uniy中开场动画的设置代码,分两部分给大家介绍,具体实现方法如下:

PC:
using System.Collections;
public class Test: MonoBehaviour
{
	// 电影纹理
	public MovieTexture movTexture;
	void Start ()
	{
		// 设置电影纹理播放模式为循环
		movTexture.loop = false;
		movTexture.Play ();
	}
	void Update ()
	{
		if (Input.GetMouseButtonDown (0)) {
			Debug.Log ("当点击屏幕的时候可以触发跳转场景等一些事件");
		}
	}
	void OnGUI ()
	{
		GUI.DrawTexture (new Rect (0, 0, Screen.width, Screen.height), movTexture);
		if (GUILayout.Button ("播放/继续")) {
			// 播放/继续播放视频
				movTexture.Play ();
		}
		if (GUILayout.Button ("暂停播放")) {
			// 暂停播放
			movTexture.Pause ();
		}
		if (GUILayout.Button ("停止播放")) {
			// 停止播放
			movTexture.Stop ();
		}
	}
}

移动端:

在移动端,unity并不提供MovieTexture,AVPro QuickTime也用不了,其最基本的显示方案使用通过?PlayFullScreenMovie?()函数进行全屏播放,根据其官网解释,主要有以下方面:
  1. 视频流直接从设备存储器中获得,所以文件只能是单独提供,视频文件放置在StreamingAssets 文件夹中
  2. 视频播放过陈中,unity将会停止;播放结束后unity自动恢复;播放过程中屏幕中的颜色会变为播放器的背景颜色,播放之后恢复。
  3. 在IOS中,内部实际上是调用MPMoviePlayerController的方法
  4. 能够支持的格式: .mov, .mp4, .mpv, and .3gp ,H.264,MPEG-4 Part 2 video
Handheld.PlayFullScreenMovie ("StarWars.mp4", Color.black, FullScreenMovieControlMode.CancelOnInput);

也就是说unity提供的方法更简单了,窗口方式也回避了,还是要去寻求第三方插件。
using UnityEngine;
using System.Collections;
public class Test : MonoBehaviour {
	void OnGUI()
	{
	    if (GUI.Button (new Rect (20,10,200,50), "PLAY ControlMode.CancelOnTouch"))
		{
			// 不显示任何视频控件,当点击屏幕发生输入之后会跳过动画的播放
			// 一般游戏中的开场动画使用这种播放方式
    	   	Handheld.PlayFullScreenMovie("test.mp4", Color.black, FullScreenMovieControlMode.CancelOnInput);
		}
			// 显示播放视频一系列标准控件
		if (GUI.Button (new Rect (20,90,200,25), "PLAY ControlMode.Full"))
		{
       		Handheld.PlayFullScreenMovie("test.mp4", Color.black, FullScreenMovieControlMode.Full);
		}
			// 隐藏所有视频控件
		if (GUI.Button (new Rect (20,170,200,25), "PLAY ControlMode.Hidden"))
		{
       	 	Handheld.PlayFullScreenMovie("test.mp4", Color.black, FullScreenMovieControlMode.Hidden);
		}
			// 显示最小的一套视频控件
		if (GUI.Button (new Rect (20,250,200,25), "PLAY ControlMode.Minimal"))
		{
       		Handheld.PlayFullScreenMovie("test.mp4", Color.black, FullScreenMovieControlMode.Minimal);
		}
	}
}