基于虛擬現(xiàn)實應(yīng)用的用戶界面控件實現(xiàn)方法和裝置的制造方法
【專利摘要】本發(fā)明提供一種基于虛擬現(xiàn)實應(yīng)用的用戶界面控件實現(xiàn)方法和裝置。該方法包括:在用戶界面的菜單對象中創(chuàng)建控件類型為規(guī)則容器類型的控件,所述規(guī)則容器類型為根據(jù)該類型創(chuàng)建的控件包含有生成多個屬于該控件的子控件的方法;獲取所述規(guī)則容器類型控件的子控件的屬性數(shù)據(jù);根據(jù)所述屬性數(shù)據(jù)生成多個控件類型相同的子控件。本發(fā)明提供的基于虛擬現(xiàn)實應(yīng)用的用戶界面控件實現(xiàn)方法和裝置,提高了在虛擬現(xiàn)實應(yīng)用的用戶界面中創(chuàng)建控件的效率。
【專利說明】
基于虛擬現(xiàn)實應(yīng)用的用戶界面控件實現(xiàn)方法和裝置
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及計算機技術(shù)領(lǐng)域,特別是涉及一種基于虛擬現(xiàn)實應(yīng)用的用戶界面控件實現(xiàn)方法和裝置。
【背景技術(shù)】
[0002]隨著計算機技術(shù)的發(fā)展,虛擬現(xiàn)實應(yīng)用得到了迅速普及,目前,虛擬現(xiàn)實應(yīng)用已廣泛應(yīng)用在包括手機、平板電腦等電子設(shè)備中,用戶可以使用這些虛擬現(xiàn)實應(yīng)用中進行游戲、活動或執(zhí)行某些特定的操作,整個過程如同在真實世界中進行一般,給用戶提供了視覺、聽覺、觸覺等全方位的模擬體驗。
[0003]虛擬現(xiàn)實應(yīng)用的用戶界面中通常顯示有控件,這些控件可以是各種各樣的按鈕、菜單、選項框等,用戶利用這些控件可以直接與虛擬現(xiàn)實應(yīng)用進行交互。現(xiàn)有技術(shù)中,在虛擬現(xiàn)實應(yīng)用中創(chuàng)建控件時,通常需要根據(jù)特定場景的需要,在該場景的用戶界面菜單里單獨創(chuàng)建每一個控件,比如,在一個虛擬現(xiàn)實的游戲場景中有若干個按鈕類型的控件,每個按鈕代表著一個游戲角色,用戶點擊一個按鈕即可完成選擇該游戲角色的功能,然而開發(fā)人員在創(chuàng)建這些控件時,對于每一個按鈕控件都需要單獨去創(chuàng)建,因此控件的創(chuàng)建效率較低。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實施例提供一種基于虛擬現(xiàn)實應(yīng)用的用戶界面控件實現(xiàn)方法和裝置,用于提高在虛擬現(xiàn)實應(yīng)用的用戶界面中創(chuàng)建控件的效率。
[0005]本發(fā)明實施例提供一種基于虛擬現(xiàn)實應(yīng)用的用戶界面控件實現(xiàn)方法,包括:
[0006]在用戶界面的菜單對象中創(chuàng)建控件類型為規(guī)則容器類型的控件,所述規(guī)則容器類型為根據(jù)該類型創(chuàng)建的控件包含有生成多個屬于該控件的子控件的方法;
[0007]獲取所述規(guī)則容器類型控件的子控件的屬性數(shù)據(jù);
[0008]根據(jù)所述屬性數(shù)據(jù)生成多個控件類型相同的子控件,所述控件類型包括規(guī)則容器類型和普通類型,所述普通類型為規(guī)則容器類型之外的其它控件的類型。
[0009]優(yōu)選地,所述根據(jù)所述屬性數(shù)據(jù)生成多個控件類型相同的子控件具體包括:
[0010]根據(jù)所述屬性數(shù)據(jù)設(shè)置所述子控件的類型、個數(shù)和子控件之間的間隔信息;以及設(shè)置至少一個子控件在所述規(guī)則容器類型的控件中的位姿信息;
[0011]根據(jù)設(shè)置的子控件的類型、個數(shù)、間隔信息以及位姿信息生成多個類型相同的子控件。
[0012]優(yōu)選地,所述方法還包括:
[0013]根據(jù)所述屬性數(shù)據(jù)設(shè)置所述規(guī)則容器類型的控件的子控件的行數(shù)、列數(shù)、編號以及子控件的尺寸,則所述生成多個類型相同的子控件具體包括:
[0014]按照所述行數(shù)、列數(shù)以及編號生成多個類型相同且尺寸相同的子控件。
[0015]優(yōu)選地,所述設(shè)置至少一個子控件在所述規(guī)則容器類型的控件中的位姿信息具體包括:
[0016]設(shè)置至少一個子控件上的參考點在所述規(guī)則容器類型的控件中的位置信息和所述子控件在所述規(guī)則容器類型的控件中的姿態(tài)信息。
[0017]優(yōu)選地,如果生成的子控件類型為規(guī)則容器類型,則對規(guī)則容器類型的子控件進行如下操作:
[0018]a)獲取規(guī)則容器類型的子控件所屬的下一級控件的屬性數(shù)據(jù);
[0019]b)根據(jù)所述下一級控件的屬性數(shù)據(jù)生成多個控件類型相同的屬于所述規(guī)則容器類型的子控件的下一級控件。
[0020]優(yōu)選地,獲取所述規(guī)則容器類型控件的子控件的屬性數(shù)據(jù)之前,所述方法還包括:
[0021]設(shè)置所述規(guī)則容器類型的控件在用戶界面的虛擬現(xiàn)實場景中的位姿信息,其中,所述位姿信息包括:所述規(guī)則容器類型的控件上的參考點在虛擬現(xiàn)實場景中的位置和所述規(guī)則容器類型的控件在虛擬現(xiàn)實場景中的姿態(tài)。
[0022]本發(fā)明實施例還提供一種基于虛擬現(xiàn)實應(yīng)用的用戶界面控件實現(xiàn)裝置,包括:創(chuàng)建模塊,獲取模塊和生成模塊,其中,
[0023]所述創(chuàng)建模塊,用于在用戶界面的菜單對象中創(chuàng)建控件類型為規(guī)則容器類型的控件,所述規(guī)則容器類型為根據(jù)該類型創(chuàng)建的控件包含有生成多個屬于該控件的子控件的方法;
[0024]所述獲取模塊,用于獲取所述規(guī)則容器類型控件的子控件的屬性數(shù)據(jù);
[0025]所述生成模塊,用于根據(jù)所述屬性數(shù)據(jù)生成多個控件類型相同的子控件,所述控件類型包括規(guī)則容器類型和普通類型,所述普通類型為規(guī)則容器類型之外的其它控件的類型。
[0026]優(yōu)選地,所述生成模塊具體包括有設(shè)置單元,其中,
[0027]所述設(shè)置單元,用于根據(jù)所述屬性數(shù)據(jù)設(shè)置所述子控件的類型、個數(shù)和子控件之間的間隔信息;以及設(shè)置至少一個子控件在所述規(guī)則容器類型的控件中的位姿信息。
[0028]優(yōu)選地,所述裝置還包括設(shè)置子單元,其中,
[0029]所述設(shè)置子單元,用于根據(jù)所述屬性數(shù)據(jù)設(shè)置所述規(guī)則容器類型的控件的子控件的行數(shù)、列數(shù)、編號以及子控件的尺寸。
[0030]優(yōu)選地,所述裝置還包括位姿設(shè)置模塊,其中,
[0031]所述位姿設(shè)置模塊,用于設(shè)置所述規(guī)則容器類型的控件在用戶界面的虛擬現(xiàn)實場景中的位姿信息,其中,所述位姿信息包括:所述規(guī)則容器類型的控件上的參考點在虛擬現(xiàn)實場景中的位置和所述規(guī)則容器類型的控件在虛擬現(xiàn)實場景中的姿態(tài)。
[0032]本發(fā)明實施例提供的基于虛擬現(xiàn)實應(yīng)用的用戶界面控件實現(xiàn)方法和裝置,規(guī)則容器類型的控件包含有生成多個屬于該控件的子控件的方法,對于類型相的子控件可以一次性生成,提高了在虛擬現(xiàn)實應(yīng)用的用戶界面中控件創(chuàng)建的效率。
【附圖說明】
[0033]為了更清楚地說明本發(fā)明實施例的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0034]圖1為本發(fā)明實施例提供的一種基于虛擬現(xiàn)實應(yīng)用的用戶界面控件實現(xiàn)方法的流程圖;
[0035]圖2為本發(fā)明實施例提供的一種基于虛擬現(xiàn)實應(yīng)用的用戶界面控件顯示示意圖;
[0036]圖3為本發(fā)明實施例提供的一種基于虛擬現(xiàn)實應(yīng)用的用戶界面中規(guī)則容器類型控件和普通控件的層次關(guān)系示意圖;
[0037]圖4為圖3中的普通控件在用戶界面中的顯示位置示意圖;
[0038]圖5為本發(fā)明實施例提供的一種基于虛擬現(xiàn)實應(yīng)用的用戶界面控件實現(xiàn)裝置的結(jié)構(gòu)示意圖。
【具體實施方式】
[0039]為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0040]在本發(fā)明的各實施例中,用戶界面通常為系統(tǒng)的圖形化前端,這些用戶界面可以為電子設(shè)備的虛擬現(xiàn)實應(yīng)用中,直接呈現(xiàn)在用戶面前的場景,這些場景可以為基于虛擬現(xiàn)實的游戲畫面,還可以為基于虛擬現(xiàn)實的其他場景體驗等。對于上述用戶,這些用戶可以為應(yīng)用程序的開發(fā)人員,當(dāng)然還可以為應(yīng)用程序產(chǎn)品的最終使用者。
[0041]用戶界面的菜單對象中通常包含有一個或多個控件,這些控件通常為系統(tǒng)底層代碼的圖形化接口,用戶可通過用戶界面中的控件與虛擬現(xiàn)實環(huán)境進行交互。在本發(fā)明的實施例中,控件可以是用戶界面中的某個窗口或該窗口中的某些按鈕,圖片或文字等。
[0042]現(xiàn)有技術(shù)中,在虛擬現(xiàn)實應(yīng)用中創(chuàng)建控件時,通常需要根據(jù)特定場景的需要,在該場景的用戶界面的菜單對象中單獨創(chuàng)建每一個控件,然而開發(fā)人員在創(chuàng)建這些控件時,對于每一個控件都需要單獨去創(chuàng)建,因此控件的創(chuàng)建效率較低。為解決上述技術(shù)問題,本發(fā)明實施例提供一種基于虛擬現(xiàn)實應(yīng)用的用戶界面控件實現(xiàn)方法,用于解決現(xiàn)有技術(shù)中控件創(chuàng)建效率低的問題,具體如圖1的所示,該流程包括以下幾個步驟:
[0043]步驟11:在用戶界面的菜單對象中創(chuàng)建控件類型為規(guī)則容器類型的控件。其中,所述規(guī)則容器類型為根據(jù)該類型創(chuàng)建的控件,包含有生成多個屬于該控件的子控件的方法。
[0044]這里的規(guī)則容器類型的控件,簡稱為容器控件,主要作用是用于組織和顯示位于其內(nèi)部的普通控件,當(dāng)然還可以用于組織其內(nèi)部的容器控件。另外,對于本發(fā)明實施例中提到的控件,從功能上通??煞譃槠胀丶腿萜骺丶?,普通組件往往有預(yù)定義的外觀和功能,例如命令按鈕,默認居中顯示指定的文本標(biāo)題等,單擊這些普通控件時通常會執(zhí)行指定的事件處理方法。而容器控件在2D的普通用戶界面上往往反映為用戶界面上的一個空白區(qū)域,主要作用是用于組織和顯示位于其內(nèi)部的普通控件或容器控件。在虛擬現(xiàn)實應(yīng)用的用戶界面中,容器控件通常為非可視化控件,用戶最終看到的則是位于容器控件內(nèi)部的普通控件。
[0045]另外,這里的規(guī)則容器類型為根據(jù)該類型創(chuàng)建的控件,包含有生成多個屬于該控件的子控件的方法,這里的子控件為上述控件中的一種,即可以是容器控件,當(dāng)然也可以是普通控件。對于生成多個屬于該控件的子控件的方法,這里的方法可以為對生成的其中一個子控件包含的代碼或代碼中的函數(shù)的迭代,使用計數(shù)器結(jié)束迭代循環(huán),從而最終一次性生成多個子控件,最終生成的子控件的個數(shù)由這里的計數(shù)器的個數(shù)所控制。當(dāng)然這里只是示意性的列舉出了一種生成多個子控件的方法,本申請為并不以此為限。
[0046]步驟12:獲取所述規(guī)則容器類型控件的子控件的屬性數(shù)據(jù)。
[0047]規(guī)則容器類型控件主要作用是用于組織和顯示位于其內(nèi)部的普通控件(子控件),還可以為組織其內(nèi)部的容器控件(子控件),在此之前,還要獲取子控件的屬性數(shù)據(jù),這里的屬性數(shù)據(jù)可以為子控件的總個數(shù);又或者是子控件在容器控件中的行數(shù)和列數(shù),總行數(shù)乘以總列數(shù)即為子控件的總個數(shù);又或者是子控件之間的間隔;又或者是子控件在容器控件中的位姿等。
[0048]步驟13:根據(jù)所述屬性數(shù)據(jù)生成多個控件類型相同的子控件。
[0049]通過上述屬性數(shù)據(jù),即可在容器控件中一次性生成多個類型相同的子控件。對于這里的類型相同,主要是相對于規(guī)則容器類型和普通類型而言,這里的普通類型為規(guī)則容器類型之外的其它控件的類型。例如生成的一個子控件為容器控件,則所有的子控件全部為容器控件,又例如生成的一個子控件為普通類型的按鈕控件,則所有的子控件全部為普通類型的按鈕控件。
[0050]本發(fā)明實施例提供的基于虛擬現(xiàn)實應(yīng)用的用戶界面控件實現(xiàn)方法,規(guī)則容器類型的控件包含有生成多個屬于該控件的子控件的方法,對于類型相的子控件可以一次性生成,提高了在虛擬現(xiàn)實應(yīng)用的用戶界面中控件創(chuàng)建的效率。
[0051]在上述的方法實施例步驟13中,所述根據(jù)所述屬性數(shù)據(jù)生成多個控件類型相同的子控件,具體包括:根據(jù)所述屬性數(shù)據(jù)設(shè)置所述子控件的類型、個數(shù)和子控件之間的間隔信息;以及設(shè)置至少一個子控件在所述規(guī)則容器類型的控件中的位姿信息;根據(jù)設(shè)置的子控件的類型、個數(shù)、間隔信息以及位姿信息生成多個類型相同的子控件。
[0052]對于設(shè)置子控件的類型,即將多個子控件的類型統(tǒng)一設(shè)定為容器控件,或?qū)⒍鄠€類型的子控件的類型統(tǒng)一設(shè)定為普通控件,對于這里的普通控件又可以進行細分,例如統(tǒng)一將普通控件設(shè)定為按鈕類型的子控件,又或者是將普通控件統(tǒng)一設(shè)定為圖片類型的子控件等等。
[0053]對于設(shè)置子控件的個數(shù),即按照產(chǎn)品需求設(shè)置需要的子控件的總個數(shù)。
[0054]對于設(shè)置至少一個子控件在所述規(guī)則容器類型的控件中的位姿信息,這里的位姿包括子控件上的參考點在規(guī)則容器類型的控件中的位置和子控件在規(guī)則容器類型的控件中的姿態(tài)。由于整個規(guī)則容器類型的控件在虛擬現(xiàn)實應(yīng)用的用戶界面中的位姿是已經(jīng)設(shè)置好的,因此,對于新生成的子控件,需要設(shè)置子控件在規(guī)則容器類型的控件中的位姿信息,進而形成最終形成子控件(普通控件)在虛擬現(xiàn)實的用戶界面中的位姿。上述提到規(guī)則容器類型為根據(jù)該類型創(chuàng)建的控件包含有生成多個屬于該控件的子控件的方法,因此這里只需設(shè)置至少一個子控件在規(guī)則容器類型的控件中的位姿即可,其它的子控件的姿態(tài)可以與首個子控件的姿態(tài)保持一致。
[0055]上述只是保證其它的子控件的姿態(tài)將與設(shè)置位姿的子控件的姿態(tài)保持一致,因此還要對子控件之間的間隔進行設(shè)置,這里的間隔不僅包括子控件之間水平方向的間隔,還包括子控件之間垂直方向的間隔,在虛擬現(xiàn)實應(yīng)用的用戶界面中,在考慮水平和垂直方向的間隔時,當(dāng)然還可以將控件之間的深度值考慮在內(nèi)。另外,對子控件的間隔進行設(shè)置時,如果子控件為剛性組件,即子控件具有指定的尺寸,不管容器控件如何縮放,剛性組件的大小不變,此時對與子控件之間的間隔也可以設(shè)置成剛性的固定值,固定值的單位可以以用戶界面圖像的像素為單位,當(dāng)然還可以為其他單位。
[0056]如果子控件為粘合組件,即組件的大小可變,當(dāng)容器控件尺寸較小時,粘合控件可以不占任何空間;當(dāng)容器控件尺寸較大時,粘合控件能夠占用任意大的多余空間,此時可以將子控件之間的間隔設(shè)置成隨粘合控件的尺寸同步變化的可變值。可以將子控件之間的間隔設(shè)置成是占子控件具體尺寸的百分比的數(shù)值,例如子控件橫向間隔設(shè)置為子控件長度的50%,子控件垂直間隔為子控件寬度的50%,最終實現(xiàn)子控件相對于所在規(guī)則容器的大小縮放。
[0057]在上述實施例中,根據(jù)設(shè)置的子控件的類型、個數(shù)、間隔信息以及位姿信息生成多個類型相同的子控件的同時,還可以根據(jù)所述屬性數(shù)據(jù)設(shè)置所述規(guī)則容器類型的控件的子控件的行數(shù)、列數(shù)、編號以及子控件的尺寸,則步驟13中生成多個類型相同的子控件具體包括:按照所述行數(shù)、列數(shù)以及編號生成多個類型相同且尺寸相同的子控件。
[0058]設(shè)置子控件的行數(shù)、列數(shù),這里的行數(shù)和列數(shù)是相對于多個子控件的總個數(shù)而言的,例如一共三個子控件,則可以設(shè)置為一行三列或者是三行一列,又例如一共為八個子控件,則可以設(shè)置為二行四列,或者是四行兩列,又或者是一行八列等等。
[0059]另外還需要對生成的每個子控件設(shè)置編號,例如容器控件的編號為1,在容器控件I中生成了兩行兩列一共四個子控件,可以將容器控件I的左上角的子控件設(shè)置編號為11,右上角的子控件編號設(shè)置為12,左下角的子控件編號設(shè)置為13,右下角的子控件的編號設(shè)置為14,這樣一個子控件對應(yīng)一個編號。在用戶界面中可能存在多個容器控件和最終生成多個子控件,這樣每個容器控件以及每個子控件都有一個唯一的編號,在對每個子控件進行控制和修改時,只需取得子控件的編號來進行,最終加強了對控件的管理,且使子控件與子控件之間,子控件與容器控件之間的層次分明。
[0060]對于這里的尺寸相同,通常為所有子控件的長度尺寸相等和寬度尺寸相等,在虛擬現(xiàn)實應(yīng)用的用戶界面中,當(dāng)然還可以為子控件的其他尺寸,這里的子控件的形狀也不僅僅局限于為長方形,當(dāng)然還可以三維的其他形狀,但最終保證所有的子控件每個相同部位的尺寸相等即可。
[0061]在之前的幾個實施例中,“生成多個類型相同的子控件”,這里的多個子控件的類型可以為規(guī)則容器類型的控件,當(dāng)然還可以為普通控件。如果子控件為普通控件,則用戶界面控件創(chuàng)建完畢,具體可以如圖2所示,圖2中的菜單對象并未顯示,如果子控件仍然為規(guī)則容器類型,那么則對規(guī)則容器類型的子控件進行如下操作:
[0062]a)獲取規(guī)則容器類型的子控件所屬的下一級控件的屬性數(shù)據(jù);
[0063]b)根據(jù)所述下一級控件的屬性數(shù)據(jù)生成多個控件類型相同的屬于所述規(guī)則容器類型的子控件的下一級控件。
[0064]對規(guī)則容器類型的子控件執(zhí)行完步驟a和步驟b之后,則生成了多個規(guī)則容器類型的子控件所屬的下一級控件。為了方便說明,以下結(jié)合附圖3和附圖4進行舉例說明。首先對于圖3,可以將容器控件I稱為第一層的控件,在容器控件I中生成容器控件11,容器控件12,容器控件13和容器控件14四個子控件,這里的四個子控件的類型均為規(guī)則容器類型。
[0065]接下來,對于容器控件11執(zhí)行上述步驟a和步驟b之后,生成若干個所屬的下一級控件;對于容器控件12執(zhí)行上述步驟a和步驟b之后,生成四個所屬的下一級控件;對于容器控件13執(zhí)行上述步驟a和步驟b之后,生成若干個所屬的下一級控件;對于容器控件14執(zhí)行上述步驟a和步驟b之后,生成兩個所屬的下一級控件。圖3中的兩個省略號分別表示的是容器控件11和容器控件13生成的下一級控件的個數(shù),由于圖紙版面有限,只將容器控件12和容器控件14生成的下一級控件的個數(shù)顯示出來,相應(yīng)地圖4中的兩個省略號表示同樣的含義。
[0066]對于上述的步驟b中,根據(jù)所述下一級控件的屬性數(shù)據(jù)生成多個控件類型相同的屬于所述規(guī)則容器類型的子控件的下一級控件具體包括:根據(jù)下一級控件的屬性數(shù)據(jù)設(shè)置下一級控件的類型、個數(shù)和下一級控件之間的間隔信息;以及設(shè)置至少一個下一級控件在規(guī)則容器類型的控件中的位姿信息;根據(jù)設(shè)置的下一級控件的類型、個數(shù)、間隔信息以及位姿信息生成多個類型相同的下一級控件。另外,還可以根據(jù)下一級控件的屬性數(shù)據(jù)設(shè)置下一級控件的行數(shù)、列數(shù)、編號以及子控件的尺寸,則所述生成多個類型相同的下一級控件具體包括:按照所述行數(shù)、列數(shù)以及編號生成多個類型相同且尺寸相同的下一級控件。
[0067]對于上述設(shè)置多個下一級控件的類型、個數(shù)和下一級控件之間的間隔信息;設(shè)置至少一個下一級控件在規(guī)則容器類型的控件中的位姿信息;設(shè)置下一級控件的行數(shù)、列數(shù)、編號以及子控件的尺寸等,和之前已經(jīng)介紹的在第一層容器控件中生成子控件的步驟大致相同,為避免重復(fù),這里僅參照圖3和圖4的實例圖,在對步驟b中的一些細節(jié)進行說明。
[0068]例如在容器控件12中生成下一級控件之前,首先需要根據(jù)容器控件12中即將生成的下一級控件的屬性數(shù)據(jù),設(shè)置容器控件12的下級控件的類型,如圖3所示的容器控件12中的下一級控件為普通控件,在具體而言,上述普通控件可以為按鈕類型的普通控件;然后設(shè)置下一級控件的總個數(shù)為4個;再設(shè)置下一級控件之間的間隔;設(shè)置至少一個下一級控件在容器控件12中的位姿信息;設(shè)置上述下一級的普通控件的行數(shù)和列數(shù)分別為兩行兩列,SP一共四個普通類型的按鈕控件;最后再設(shè)置每個下一級的普通控件的編號以及尺寸,生成四個按鈕類型的普通控件,即普通控件121,普通控件122,普通控件123和普通控件124。
[0069]在容器控件11,容器控件13,容器控件14,中生成下級控件的方法與在容器控件12中生成下一級控件的方法相同,這里不再贅述,最終呈現(xiàn)在虛擬現(xiàn)實應(yīng)用的用戶界面的菜單上的內(nèi)容如圖4所示,用戶最終看到的只是普通控件,即容器控件11和容器控件13中的若干個普通控件,容器控件12中的四個普通控件,和容器控件14中的兩個普通控件,圖4中的虛線只是示意性的顯示各容器控件的位置關(guān)系,在實際的用戶界面中并不顯示。
[0070]對于上述的容器控件11、容器控件12、容器控件13或容器控件14也含有生成多個屬于該控件的下一級控件的方法,容器控件11、容器控件12、容器控件13或容器控件14可以嵌套容器控件或者是普通控件,還以圖3為例,容器控件12和容器控件14生成的若干個下級控件為普通控件,容器控件11和容器控件13生成的若干個下級控件可以為普通控件,當(dāng)然還可以繼續(xù)為容器控件,如果繼續(xù)為容器控件,重復(fù)執(zhí)行上述步驟a和步驟b,最終直至所有的下級控件為普通控件。
[0071]對于之前的一個方法實施例,步驟12中提到獲取所述規(guī)則容器類型控件的子控件的屬性數(shù)據(jù),在此步驟之前,所述方法還可以包括:設(shè)置所述規(guī)則容器類型的控件在用戶界面的虛擬現(xiàn)實場景中的位姿信息,其中,所述位姿信息包括:所述規(guī)則容器類型的控件上的參考點在虛擬現(xiàn)實場景中的位置和所述規(guī)則容器類型的控件在虛擬現(xiàn)實場景中的姿態(tài)。
[0072]這里還以圖4所示為例,雖然用戶最終看到的為普通控件,然而容器控件I控制著普通控件在用戶界面中的位姿,因此首先要對容器控件I在虛擬現(xiàn)實環(huán)境中的位姿進行設(shè)定。
[0073]在具體的設(shè)置容器控件的位姿時,例如,虛擬現(xiàn)實的用戶界面顯示的是一個房間的三維畫面,此時可定義世界坐標(biāo)系,將用戶界面左上角位置坐標(biāo)定義原點坐標(biāo),即(0,0,O),原點正右側(cè)方向為X軸正方向,原點垂直向下為y軸正方向,同時垂直于X軸和y軸并朝向用戶的視線方向為z軸正方向,各個方向的取值可以以三維畫面的像素為單位,此時即可設(shè)置容器控件的參考點在虛擬現(xiàn)實場景中的位置坐標(biāo),這里的參考點可以為容器控件的重心位置,當(dāng)然還可以為容器控件上的其他參考點。
[0074]在確定好容器控件上的參考點在虛擬現(xiàn)實場景中的位置坐標(biāo)之后,還需要對容器控件在虛擬現(xiàn)實場景中的姿態(tài)進行確定,進而為最終生成的普通控件的姿態(tài)設(shè)置做鋪墊,這里的姿態(tài)可以為容器控件分別與上述X,y,z三個坐標(biāo)軸之間的夾角。
[0075]對于三維的虛擬現(xiàn)實場景,如果只有上述x,y兩個坐標(biāo)軸且容器控件以及最終顯示的普通控件與x,y兩個坐標(biāo)軸的夾角為零度,則用戶可能會覺得顯示出的普通控件為平面圖像,進而會使整個三維的虛擬現(xiàn)實場景的感觸造成影響,所以通常需要設(shè)定z軸,即深度值大小,以及容器控件的顯示角度,并且在需要進行三維顯示時,該顯示角度不為零。其中,顯示的角度應(yīng)與實際呈現(xiàn)的虛擬現(xiàn)實場景相協(xié)調(diào)。
[0076]需要說明的是,最終所有的普通控件作為一個整體的三維圖像顯示給用戶時,這里所有的普通控件可以具有相同的顯示角度。另外圖2和圖4只是示意性的顯示控件在用戶界面中的位置,并未顯示出控件之間的深度信息以及控件的姿態(tài)信息。
[0077]上述只是介紹了如何讓設(shè)置第一層的容器控件在虛擬現(xiàn)實場景中位姿,這里還涉及到容器控件中的多個子控件在容器控件的位姿,所述位姿包括:所述子控件上的參考點在容器控件中的位置和所述子控件在容器控件中的姿態(tài)。由于多個子控件均為一次性生成的,因此只需設(shè)置至少一個子控件在容器控件中的位姿,再結(jié)合子控件之間的間隔,剩下的子控件即可與設(shè)置好位姿的子控件保持同樣的姿態(tài),但是在容器控件中保持不同的位置。
[0078]需要說明的是,上述提到的兩個“位姿”的概念,一個是容器控件在用戶界面的虛擬現(xiàn)實場景中的位姿,另一個是至少一個子控件在容器控件中的位姿,第一個位姿是容器控件相對于虛擬現(xiàn)實場景(用戶界面)而言的,第二個位姿是設(shè)置好位姿的子控件相對于生成此子控件的容器控件而言的。
[0079]上述內(nèi)容詳細介紹了是本發(fā)明的方法實施例,相應(yīng)地,本發(fā)明還提供了一種基于虛擬現(xiàn)實應(yīng)用的用戶界面控件實現(xiàn)裝置實施例。參見附圖5,包括:創(chuàng)建模塊21,獲取模塊22和生成模塊23,其中,
[0080]所述創(chuàng)建模塊21,可以用于在用戶界面的菜單對象中創(chuàng)建控件類型為規(guī)則容器類型的控件,所述規(guī)則容器類型為根據(jù)該類型創(chuàng)建的控件包含有生成多個屬于該控件的子控件的方法。
[0081]所述獲取模塊22,可以用于獲取所述規(guī)則容器類型控件的子控件的屬性數(shù)據(jù)。
[0082]所述生成模塊23,可以用于根據(jù)所述屬性數(shù)據(jù)生成多個控件類型相同的子控件,所述控件類型包括規(guī)則容器類型和普通類型,所述普通類型為規(guī)則容器類型之外的其它控件的類型。
[0083]本裝置實施例的工作過程為:創(chuàng)建模塊21首先創(chuàng)建規(guī)則容器類型的控件,然后獲取模塊22獲取規(guī)則容器類型控件的子控件的屬性數(shù)據(jù),最后生成模塊23根據(jù)獲取模塊22獲取到的屬性數(shù)據(jù),一次性生成多個類型相同的子控件。
[0084]本發(fā)明實施例提供的基于虛擬現(xiàn)實應(yīng)用的用戶界面控件實現(xiàn)裝置,創(chuàng)建模塊21創(chuàng)建的容器控件包含有生成多個屬于該控件的子控件的方法,最終生成模塊23對于類型相同的子控件可以一次性生成,提高了在虛擬現(xiàn)實應(yīng)用的用戶界面中控件創(chuàng)建的效率。
[0085]另外,上述基于虛擬現(xiàn)實應(yīng)用的用戶界面控件實現(xiàn)裝置中,生成模塊23具體包括有設(shè)置單元,其中,所述設(shè)置單元,用于根據(jù)所述屬性數(shù)據(jù)設(shè)置所述子控件的類型、個數(shù)和子控件之間的間隔信息;以及設(shè)置至少一個子控件在所述規(guī)則容器類型的控件中的位姿信息。
[0086]上述裝置還可以包括設(shè)置子單元,其中,所述設(shè)置子單元,用于根據(jù)所述屬性數(shù)據(jù)設(shè)置所述規(guī)則容器類型的控件的子控件的行數(shù)、列數(shù)、編號以及子控件的尺寸。
[0087]上述裝置還可以包括位姿設(shè)置模塊,其中,所述位姿設(shè)置模塊,用于設(shè)置所述規(guī)則容器類型的控件在用戶界面的虛擬現(xiàn)實場景中的位姿信息,其中,所述位姿信息包括:所述規(guī)則容器類型的控件上的參考點在虛擬現(xiàn)實場景中的位置和所述規(guī)則容器類型的控件在虛擬現(xiàn)實場景中的姿態(tài)。
[0088]以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本實施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性的勞動的情況下,即可以理解并實施。
[0089]通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到各實施方式可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當(dāng)然也可以通過硬件。基于這樣的理解,上述技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品可以存儲在計算機可讀存儲介質(zhì)中,如R0M/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行各個實施例或者實施例的某些部分所述的方法。
[0090]最后應(yīng)說明的是:以上實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的精神和范圍。
【主權(quán)項】
1.一種基于虛擬現(xiàn)實應(yīng)用的用戶界面控件實現(xiàn)方法,其特征在于,包括: 在用戶界面的菜單對象中創(chuàng)建控件類型為規(guī)則容器類型的控件,所述規(guī)則容器類型為根據(jù)該類型創(chuàng)建的控件包含有生成多個屬于該控件的子控件的方法; 獲取所述規(guī)則容器類型控件的子控件的屬性數(shù)據(jù); 根據(jù)所述屬性數(shù)據(jù)生成多個控件類型相同的子控件,所述控件類型包括規(guī)則容器類型和普通類型,所述普通類型為規(guī)則容器類型之外的其它控件的類型。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述屬性數(shù)據(jù)生成多個控件類型相同的子控件具體包括: 根據(jù)所述屬性數(shù)據(jù)設(shè)置所述子控件的類型、個數(shù)和子控件之間的間隔信息;以及設(shè)置至少一個子控件在所述規(guī)則容器類型的控件中的位姿信息; 根據(jù)設(shè)置的子控件的類型、個數(shù)、間隔信息以及位姿信息生成多個類型相同的子控件。3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述方法還包括: 根據(jù)所述屬性數(shù)據(jù)設(shè)置所述規(guī)則容器類型的控件的子控件的行數(shù)、列數(shù)、編號以及子控件的尺寸,則所述生成多個類型相同的子控件具體包括: 按照所述行數(shù)、列數(shù)以及編號生成多個類型相同且尺寸相同的子控件。4.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述設(shè)置至少一個子控件在所述規(guī)則容器類型的控件中的位姿信息具體包括: 設(shè)置至少一個子控件上的參考點在所述規(guī)則容器類型的控件中的位置信息和所述子控件在所述規(guī)則容器類型的控件中的姿態(tài)信息。5.根據(jù)權(quán)利要求1至4中任何一項所述的方法,其特征在于,如果生成的子控件類型為規(guī)則容器類型,則對規(guī)則容器類型的子控件進行如下操作: a)獲取規(guī)則容器類型的子控件所屬的下一級控件的屬性數(shù)據(jù); b)根據(jù)所述下一級控件的屬性數(shù)據(jù)生成多個控件類型相同的屬于所述規(guī)則容器類型的子控件的下一級控件。6.根據(jù)權(quán)利要求1所述的方法,其特征在于,獲取所述規(guī)則容器類型控件的子控件的屬性數(shù)據(jù)之前,所述方法還包括: 設(shè)置所述規(guī)則容器類型的控件在用戶界面的虛擬現(xiàn)實場景中的位姿信息,其中,所述位姿信息包括:所述規(guī)則容器類型的控件上的參考點在虛擬現(xiàn)實場景中的位置和所述規(guī)則容器類型的控件在虛擬現(xiàn)實場景中的姿態(tài)。7.—種基于虛擬現(xiàn)實應(yīng)用的用戶界面控件實現(xiàn)裝置,其特征在于,包括創(chuàng)建模塊,獲取模塊和生成模塊,其中, 所述創(chuàng)建模塊,用于在用戶界面的菜單對象中創(chuàng)建控件類型為規(guī)則容器類型的控件,所述規(guī)則容器類型為根據(jù)該類型創(chuàng)建的控件包含有生成多個屬于該控件的子控件的方法; 所述獲取模塊,用于獲取所述規(guī)則容器類型控件的子控件的屬性數(shù)據(jù); 所述生成模塊,用于根據(jù)所述屬性數(shù)據(jù)生成多個控件類型相同的子控件,所述控件類型包括規(guī)則容器類型和普通類型,所述普通類型為規(guī)則容器類型之外的其它控件的類型。8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述生成模塊具體包括設(shè)置單元,其中, 所述設(shè)置單元,用于根據(jù)所述屬性數(shù)據(jù)設(shè)置所述子控件的類型、個數(shù)和子控件之間的間隔信息;以及設(shè)置至少一個子控件在所述規(guī)則容器類型的控件中的位姿信息。9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述裝置還包括設(shè)置子單元,其中, 所述設(shè)置子單元,用于根據(jù)所述屬性數(shù)據(jù)設(shè)置所述規(guī)則容器類型的控件的子控件的行數(shù)、列數(shù)、編號以及子控件的尺寸。10.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述裝置還包括位姿設(shè)置模塊,其中, 所述位姿設(shè)置模塊,用于設(shè)置所述規(guī)則容器類型的控件在用戶界面的虛擬現(xiàn)實場景中的位姿信息,其中,所述位姿信息包括:所述規(guī)則容器類型的控件上的參考點在虛擬現(xiàn)實場景中的位置和所述規(guī)則容器類型的控件在虛擬現(xiàn)實場景中的姿態(tài)。
【文檔編號】G06F9/44GK105912310SQ201510884623
【公開日】2016年8月31日
【申請日】2015年12月4日
【發(fā)明人】李珅
【申請人】樂視致新電子科技(天津)有限公司