U3D新手,用于记录项目开发过程所遇到的“坑”与“所学”。
1、项目导出分辨率低,模糊
解决办法:Assets-Project Setting
2。更改游戏项目名字,即左上角名字:
3.场景界面跳转代码:
using UnityEngine.UI;
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using UnityEngine.SceneManagement;
public class reload_Scence : MonoBehaviour
{
public void StartGame(){Application.LoadLevel("1026");}
}
4.视频播放与暂停功能代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Video;
using UnityEngine.UI;
public class VIdeoController : MonoBehaviour
{
// Start is called before the first frame update
//设置VideoPlayer、RawImage和当前播放视频索引参数
private VideoPlayer videoPlayer;
private RawImage rawImage;
private int currentClipIndex;
//设置相关文本和按钮参数以及视频列表
public Text text_PlayOrPause;
public Button button_PlayOrPause;
public Button button_Pre;
public Button button_Next;
public VideoClip[] videoClips;
void Start()
{
//获取VideoPlayer和RawImage组件,以及初始化当前视频索引
videoPlayer = this.GetComponent<VideoPlayer>();
rawImage = this.GetComponent<RawImage>();
currentClipIndex = 0;
//设置相关按钮监听事件
button_PlayOrPause.onClick.AddListener(OnPlayOrPauseVideo);
button_Pre.onClick.AddListener(OnPreVideo);
button_Next.onClick.AddListener(OnNextVideo);
}
// Update is called once per frame
void Update()
{
//没有视频则返回,不播放
if (videoPlayer.texture == null)
{
return;
}
//渲染视频到UGUI上
rawImage.texture = videoPlayer.texture;
}
/// <summary>
/// 播放和暂停当前视频
/// </summary>
private void OnPlayOrPauseVideo()
{
//判断视频播放情况,播放则暂停,暂停就播放,并更新相关文本
if (videoPlayer.isPlaying == true)
{
videoPlayer.Pause();
text_PlayOrPause.text = "播放";
}
else
{
videoPlayer.Play();
text_PlayOrPause.text = "暂停";
}
}
/// <summary>
/// 切换上一个视频
/// </summary>
private void OnPreVideo()
{
//视频列表减一播放上一个视频,并进行避免越界操作
currentClipIndex -= 1;
if (currentClipIndex < 0)
{
currentClipIndex = videoClips.Length - 1;
}
videoPlayer.clip = videoClips[currentClipIndex];
text_PlayOrPause.text = "暂停";
}
/// <summary>
/// 切换下一个视频
/// </summary>
private void OnNextVideo()
{
//视频列表加一播放下一个视频,并进行避免越界操作
currentClipIndex += 1;
currentClipIndex = currentClipIndex % videoClips.Length;
videoPlayer.clip = videoClips[currentClipIndex];
text_PlayOrPause.text = "暂停";
}
}
5.视频进度调节代码
using UnityEngine;
using UnityEngine.EventSystems;
/// <summary>
/// 继承 拖拽接口
/// </summary>
public class SliderEvent : MonoBehaviour, IDragHandler
{
[SerializeField]
private ToPlayVideo toPlayVideo; // 视频播放的脚本
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
/// <summary>
/// 给 Slider 添加 拖拽事件
/// </summary>
/// <param name="eventData"></param>
public void OnDrag(PointerEventData eventData)
{
SetVideoTimeValueChange();
}
/// <summary>
/// 当前的 Slider 比例值转换为当前的视频播放时间
/// </summary>
private void SetVideoTimeValueChange()
{
toPlayVideo.videoPlayer.time = toPlayVideo.videoTimeSlider.value * toPlayVideo.videoPlayer.clip.length;
}
}
未完待续