1. 程式人生 > >Unity 專案HTCvive中 PPT播放的實現

Unity 專案HTCvive中 PPT播放的實現

設定一個canvas面板,用來存放之後需要觸發的ui元件。

ppt是通過image圖片的改變來實現的。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class RoomPanelButtons : MonoBehaviour {

	public Text intro;
	public RoomPanelPanels panels;

	public void OnEnterButton(string content){
		intro.text = content;
	}

	public void OnExitButton(){
		intro.text = "";
	}

	public void Disable(){
		gameObject.SetActive (false);
	}

	public void Show(int panel){
		panels.gameObject.SetActive (true);
		panels.Show (panel);
		GetComponent<Animator> ().SetTrigger ("CLOSE");
	}
}

設定幾個方法,分別用於button的出發,圖片點選的觸發。



在射線進入button,點選button,退出button的時候,分別呼叫各個方法。

在射線照到指到的時候 執行OnEnterButtor,將text設定為制定的字,射線離開時,執行OnExitButtor,將text至為空。

當點選時,執行show方法,通過設定的變數panel,來決定將哪個panel面板設為setactive。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class PPT : MonoBehaviour {

	public Sprite[] ppts;
	public Image img;

	private int _current;
	public int Current {
		set{
			_current = value;
			img.sprite = ppts [value];
		}
		get{
			return _current;
		}
	}

	void Start(){
		Current = 0;
	}

	public void Next(){
		if (Current == ppts.Length - 1) {
			Current = 0;
		} else {
			Current++;
		}
	}

}

設定一個sprite精靈體的陣列,用來存ppt圖片,在panel下面設定一個image子物體,當在image上面點選觸發,執行next方法,每次點選的時候,遞加current值,當current值到陣列的長度-1時,即陣列中最後一張圖片時,將其至為0,從頭開始迴圈。

為了避免在外部修改current數值並且設定為public屬性,在外部函式中可以呼叫到,使用了set get這種函式形式,通過private的變數值為current賦值。

最後,當點選close圖片的時候,執行close方法,將所在的面板setactive設定為false。

相關推薦

Unity 專案HTCvive PPT播放實現

設定一個canvas面板,用來存放之後需要觸發的ui元件。ppt是通過image圖片的改變來實現的。using System.Collections; using System.Collections.Generic; using UnityEngine; using Uni

Unity HTC vive VR環境視訊播放實現與互動

視訊材質的shader結構。藉助unity的shader中的Unlit/Texture,將ogv格式的視訊,繫結到提到的這種shader的材質球上,通過指令碼控制互動。Canvas面板Canvas下新建pannel作為視訊的播放介質。將綁定了目標視訊的材質球繫結到image屬

vue專案利用vue-video-player實現視訊相容IOS和安卓放大播放

首先,圖片和視訊混合一起,預設圖片製作poster點選彈窗手機播放器 <template> <div class="look-v"> <section class="view-wrap" v-if="accObj"> <div c

Unity專案開發過程常見的問題,你遇到過嗎?

最近看到有朋友問一個unity遊戲開發團隊,需要掌握哪些知識之類的問題。事實上Unity引擎是一個很靈活的引擎,根據團隊開發遊戲型別的不同,對人員的要求也有差異,所以不能一概而論。但是,一些在Unity專案開發過程中常常會遇到的問題還是可以總結一下的。 下面我就來聊聊實際工作中,一個專案組可能會遇到的問題吧

react-native-android-unity(二)建立unity專案,並匯出為android程式碼包,嵌入android專案

1.建立unity專案 給Main Camera新增指令碼Android,使用C#開發,指令碼內容如下: using System.Collections;
using System.Colle

在前後端分離Web專案,RBAC實現的研究

在前後端分離Web專案中,RBAC實現的研究   最近手頭公司的網站專案終於漸漸走出混沌,走上正軌,任務也輕鬆了一些,終於有時間整理和總結一下之前做的東西。 以往的專案一般使用模板引擎(如ejs)渲染出完整頁面,再發送到瀏覽器展現。但這次專案的處理方式不同,整個專案由前端

關於unity專案使用sqlite

一:準備,Mono.Data.Sqlite.dll,System.Data.dll,sqlite3.dll(X86和X86_64),這些dll檔案是必須的。將他們放到Plugins資料夾下即可。dll缺一不可,否則打包出來會有問題。然後需要將API Compatibility

專案案例 || 註冊驗證碼實現

今天,給大家介紹驗證碼的相關配置問題。 眾所周知,對傳統驗證碼而言,便捷和安全長期以來一直是魚與熊掌的關係。 這可從12306與黃牛的博弈中看出端倪。 最先開始,只是簡單的數字英文組合,再後來有了加減法,相信一般人也可以應付。 直到出現一閃一閃的動態驗證碼和變形字母,第一次體會

專案匯出功能實現

js頁面實現: var taskModelCode = 'configByOrgTypeExport'; $scope.export = function($event) { $scope.evt = $event;

vue-cli搭建的專案使用vuex實現狀態管理

1、安裝 使用vue-cli搭建好專案以後,安裝vuex npm install vuex --save-dev 2、建立Vuex.Store例項 對於大型應用,需要儲存的狀態可能很多,我們就將store中的state、getters 、mutations 和 a

Unity專案UI指令碼丟失解決方案

//此指令碼是解決UI指令碼丟失 //步驟:將此指令碼放到專案下的Edit資料夾下,如果沒有,請自行建立 //步驟:點選視窗的Asstes → Reimport ui assemblies using UnityEngine; using System.Collections.Generic;

Unity 在2D實現LookAt

由於Transform.LookAt是使Z軸看向目標,而2D基本是由X和Y軸構成的。所以在2D的遊戲中,不太好使用。 所以用程式碼實現一個2D的LookAt函式。   例子: 我們使怪物的眼睛一直看著雲。 怪物的眼睛朝向和localX軸的朝向一致,所以使怪物看

gradle專案profile的實現

gradle中並沒有直接類似maven中的profile支援,只能變通的用其它方法來處理,在打包不同環境的應用時,通常會遇到二類問題: 一、不同的環境依賴的jar包不同 拿web開發來說,生產環境一般會採用weblogic,jboss這類重量級的容器,通常這類web server已經內建了很多第三方的通用

Unity專案UI同學需知的程式相關要點

背景和目的 本文的背景是Killer專案已進行到了一定階段。雖然之前定下了UI製作規範,但中途也更新了規範,但程式和美術沒有具體面對面溝通,也沒有闡述規範的原因和落地方法。 所以,本文目的是為UI美術同事介紹:1、手遊效能相關的標準是什麼;2、具體制作時需要注意什麼

unity狀態機的動畫不能播放的問題

可能原因: (1)動畫沒有設定為 loop 。 (2)Animator 中 沒有指定 Animator Controller。 (3)狀態機中的 Animation 的 Motion 為 None,如下: 有時在狀態機建立好了,並且 animation都已經匯入了

react專案通過 iscroll 實現上拉載入,下拉重新整理

基於 iscroll 實現的 react 元件 第一步:引入外掛 npm install reactjs-iscroll --save 可在專案下的package.json檔案內dependencies下看到安裝好的外掛版本; 第二步:在專案中使用 import iS

Unity優化】如何實現Unity編輯器的協程

本文為博主原創文章,歡迎轉載,請保留出處:http://blog.csdn.net/andrewfan Unity編輯器中何時需要協程 當我們定製Unity編輯器的時候,往往需要啟動額外的協程或者執行緒進行處理。比如當執行一些介面更新的時候,需要大量計算,如果使用者在不斷修

android 音訊播放 以及 二維碼模組音訊播放和震動(vibrate)的實現

參考:《第一行程式碼》第8章 ######################################################################## 在Android中播放音訊檔案一般都是使用MediaPlayer類來實現,它對多種格式的音訊檔

java web專案(spring專案)整合webservice ,實現對外開放介面

1 什麼是WebService?webService小示例 點此瞭解 下面進入正題: Java web專案(spring專案)中整合webservice ,實現對外開放介面步驟: 準備: 採用與spring相容性較好的cxf來實現 選擇zip格式下載,解壓後的

Unity專案UI美術必須知道的程式要點

原文地址:http://youxiputao.com/articles/4820 本文轉載自IndieACE(遊戲葡萄),是開發者DonaldW寫給UI美術同事的一篇文章,原文題為《Unity專案中UI同學需知的程式相關要點》,分享給大家,希望促程序序和美術之間的相互理解。 背景和目的 本文的背景是《獨立