1. 程式人生 > >HTC Vive VR房產專案開發四(切換傢俱樣式)

HTC Vive VR房產專案開發四(切換傢俱樣式)

一、在VRTK中的Prefabs下將RadiaMenu拖動到SofaContainer之下


二、在Panel中預設掛載了兩個指令碼,VRTK_Radial Menu和VRTK_Radia Menu Controller,由於不需要通過手柄的touch pad等鍵進行操作,移除掉VRTK_Radial Menu Controller指令碼,並且將VRTK_IndependentRadiaMenuController指令碼(允許環形選單掛載到物體上)掛載到Panel物體上


三、對SofaContainer進行設定,與物體進行互動。選中SofaContainer-->Window-->VRTK-->Setup Interactable Object-->進行屬性設定-->Setup selected object(s)


然後在右側自動生成了如圖所示的指令碼配置


四、給SofaContainer新增一個BoxCollider,這樣才能與物體進行互動


五、匯入沙發的模型


將模型拖入Hiearchy檢視並調整大小和位置


但是可以看到材質已經丟失了,找到材質,看到shader還是Standard


手動將材質改為Valve/vr_standard,並且將該材質重新賦給Febo沙發,就恢復正常了


六、建立指令碼並新增到物體上

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using VRTK;

public class Furniture : MonoBehaviour {

    //傢俱資訊列表
    public FurnitureData[] furnitureList;
    private int currentTextureIndex = 0;
    private int currentFurnitureIndex = 0;
    //環形選單
    private VRTK_RadialMenu menu;
	
	void Start () {
        menu = GetComponentInChildren<VRTK_RadialMenu>();
        //變數傢俱集合,將傢俱設定為隱藏
        foreach (FurnitureData data in furnitureList)
        {
            data.furnitureModel.SetActive(false);
        }
        //將第一個傢俱顯示出來
        furnitureList[0].furnitureModel.SetActive(true);
        updateMenu();

    }
	
	
	void Update () {
		
	}

    // 選擇材質
    public void SelectTexture(int index)
    {
        if (currentTextureIndex != index) {
            //給材質賦值
            furnitureList[1].furnitureModel.GetComponent<Renderer>().material.mainTexture = furnitureList[1].textures[2];
            currentTextureIndex = index;
         }
    }


    //選擇傢俱
    public void SelectFurniture(int index)
    {
        if(currentFurnitureIndex != index)
        {
            furnitureList[index].furnitureModel.SetActive(true);                                //顯示傳遞過來的模型
            furnitureList[currentFurnitureIndex].furnitureModel.SetActive(false);               //隱藏當前的模型
            currentFurnitureIndex = index;                                                      //將當前模型的角標重新賦值
         }
    }


    private void updateMenu()
    {
        for(int i = 0; i < 3; i++)
        {
            //每選擇一個傢俱模型,就顯示相應的縮圖
            menu.buttons[i].ButtonIcon = furnitureList[currentFurnitureIndex].textThumbs[i];
            menu.RegenerateButtons();
        }
    }
}


using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[System.Serializable]

public class FurnitureData{

    public GameObject furnitureModel;                   //傢俱
    public Texture[] textures;                          //模型貼圖列表
    public Sprite[] textThumbs;                         //縮圖

}


七、將指令碼Furniture掛載到SofaContainer上,設定集合長度是3,並給funiture model傢俱模型賦值


八、將準備好的材質賦給模型


九、新增材質縮圖

將jpg格式的縮圖匯入到unity中後需要改成Sprite型別


十、分別設定radiomenu的按鈕點選事件



分別指定button的縮圖


十一、執行後

瞬移到沙發旁邊


當接觸物體的時候彈出環形選單


點選第二個方框按鈕換成淺色沙發

點選第一個方框按鈕切換成椅子


點選第三個方框按鈕再次切換成深色沙發


注:參考資料:http://edu.manew.com/course/344/learn#lesson/5753

相關推薦

HTC Vive VR房產專案開發切換傢俱樣式

一、在VRTK中的Prefabs下將RadiaMenu拖動到SofaContainer之下 二、在Panel中預設掛載了兩個指令碼,VRTK_Radial Menu和VRTK_Radia Menu Controller,由於不需要通過手柄的touch pad等鍵進行操作,

HTC Vive VR房產專案開發手柄提示+戶型圖

一、匯入房子模型、SteamVR、TheLabRenderer、VRTK,進行相關設定,並將CameraRig拖動到場景中,但此時並沒有看到房屋模型(http://blog.csdn.net/nicolelili1/article/details/74857374) 二、

HTC Vive VR Unity 開發入門

Steam VR在Unity上的開發出奇的簡單。只要以下步驟就能夠進行Steam VR的開發。 第一步,最重要的一步,你需要一臺 HTC的Vive VR裝置。這個有點貴也有點難買。需要預定。 第二步,一臺足夠強大的主機。建議配置是I7,32G記憶體,SSD硬碟以及GTX970以上的顯示卡。換句話說,要配置一

機器學習專案開發過程End-to-End Machine Learning Project

引言:之前對於機器學習的認識停留在演算法的分析上,這篇文章主要從專案開發的角度分析機器學習的應用。這篇文章主要解釋實際專案過程中的大致方針,每一步涉及的技術不會介紹很細緻。機器學習專案開發步驟如下: 1. Look at the big picture. 2. Get the dat

小米VR一體機遊戲開發日記第二天

unity裝了一個晚上終於裝完了,不知道為啥要裝個VS 2017,搞得我完全不知道入口在哪?在“程式”裡面找半天沒找到在哪裡開啟,後來在安裝資料夾裡找到了unity.exe,執行居然報錯,什麼“應用程式****報錯 ”之類的。百度了一下,缺了一些dll,在這個地方找到了,ht

加密專案開發筆記4——PC後續

    在做完PC軟體的基礎功能後,接下來就是後續的功能完善和進一步拓展了 2018-10-28更新 加入U盤認證功能 加入拖拽檔案功能 加入MD5碼完整性校驗 解決在接收伺服器金鑰時UI無響應的情況 加入頂欄選單 U盤認證         U盤認證作

STM32專案開發總結

前些日子用stm32做了一個小專案,現在對專案中出現的一些奇怪問題總結如下。這裡不做程式碼層面的探討。 首先大致介紹一下專案:該專案希望實現高密的遠端資料採集及控制。下位機主控晶片是STM32F1系列晶片,TIAD轉換晶片,同時還有Lora射頻模組實現無線通訊,GPS模組及

企業專案開發--cookie1

此文已由作者趙計剛授權網易雲社群釋出。 歡迎訪問網易雲社群,瞭解更多網易技術產品運營經驗。 注:本章程式碼基於《第五章 企業專案開發--mybatis註解與xml並用》的程式碼,連結如下: http://www.cnblogs.com/java-zhao/p/5120792.html 在實際專案中,我們會儲

企業專案開發--cookie3

此文已由作者趙計剛授權網易雲社群釋出。 歡迎訪問網易雲社群,瞭解更多網易技術產品運營經驗。 2.2.3、AdminController   1 package com.xxx.web.admin;   2    

企業專案開發--cookie2

此文已由作者趙計剛授權網易雲社群釋出。 歡迎訪問網易雲社群,瞭解更多網易技術產品運營經驗。 2.1.3、CookieUtil:(cookie的基本操作:增刪查,注意沒有改)  1 package com.xxx.util;  2  &n

Scala 專案開發實戰2

今天是學習王家林老師大資料的第二天,今天主要講的是Scala的基礎語法知識,下面開始Scala的開發之旅。 Tuple 使用 列印輸出 triple 中的內容 Arra

敏捷外包工程系列之:外包與敏捷開發專訪IIOM獨家專訪

本文是敏捷外包工程系列的第四篇。(之一,之二,之三,之四)本文是2012年05月初IIOM(國際外包管理學院)的專訪。傳統認為敏捷開發是面向產品研發的,在外包專案裡邊比較難用,因為需求由客戶牽制,而“擁抱變化”極有可能導致專案延期超支,等等。本文提及了敏捷開發對外包專案的幫助

【java專案實戰】一步步教你使用MyEclipse搭建java Web專案開發環境

       首先,在開始搭建MyEclipse的開發環境之前,還有三步工具的安裝需要完成,只要在安裝配置成功之後才可以進入下面的java Web專案開發環境的搭建。 1、安裝工具 第一步,下載並

unity 通過使用 photon networking Pun 實現 HTC Vive VR的多人聯網。進階版 《二》

——pun的配置,以及實現頭盔以及兩個手柄的同步。 下載完pun並匯入後如圖所示 有這些東西,pun的介紹還是很清楚的,有很多demo可以學習,而且文件自帶。很容易上手。 首先,就是伺服器的配置了。就是圖中箭頭所指向的。開啟它, 可以看到很多設定,很顯然一般最重要的都在

Angular6 + Ng-Zorro專案開發總結

專案概述 開發一個多功能平臺,具有展示產品,申請服務開通,申請記錄檢視等功能,與公司內部系統相連線,初步功能較為單一, 後期可能會擴充套件新功能。 專案選型 由於上一個專案選擇的Abp框架,配合使用的是angular6的前端框架,這次我還是繼續選擇ang

基於vue-cli網上商城專案實戰開發——搭建一個完整的SPA專案開發框架

基於vue-cli腳手架,結合實際專案經驗,搭建一個完整的SPA專案框架。 安裝vue-cli腳手架 先貼出官方的命令列工具使用方法 官方命令列工具 鑑於此過程比較緩慢,我這裡推薦使用淘寶映象來安裝。依次執行以下步驟 (本人mac,需要sudo獲

物聯網之STM32開發中斷系統

STM32-中斷系統 內容概要: STM32中斷系統概述 外部中斷控制器EXTI 按鍵中斷例項 串列埠中斷例項 STM32中斷系統概述: 內容概要: 中斷的基本概念 巢狀向量控制器NVIC 中斷及異常向量表 中斷優先順序 中斷的基本概念:  處理器中

Java專案開發心得:使用EhCache+SSM實現資料快取

在專案的開發過程中,經常會考慮到提高使用者訪問效率,降低伺服器的壓力,這個時候會用到資料快取。當前實現快取的技術有很多, 例如: jCache、Ehcache以及快取伺服器redis,redis作為分散式系統重要的組成部分,該技術的使用以及相關的一些問題會在後面的文章當中詳細介紹。

Java專案開發心得:利用Java技術實現查詢手機號碼歸屬地

      鑑於最近專案涉及到查詢歸屬地的問題,今天在此做一下技術分享,如果有更好的建議,還請讀者大神指出。       迴歸正題,關於手機號碼歸屬地,想要查詢的無非是執行商、省份、市之類的資

專案開發細節專案後端完整細節

XXX酒店專案總結(後端開發)1.專案功能:    a)業務邏輯:        i.使用者:                1.使用者通過APP註冊(手機號),然後登入,可以修改賬號密碼;忘記密碼,可以通過手機號重新設定密碼;退出登入;檢視自己的資料;修改自己的資料;