1. 程式人生 > >Unity3D-動態例項化按鈕的總結

Unity3D-動態例項化按鈕的總結

目前,我收集到的動態建立按鈕只有2種方法。 如果誰還有另外動態建立按鈕的方法。可以給我留言,謝謝。大笑

前提:動態建立按鈕,都需要建立一個按鈕預設體ButtonPrefabs,假如,我們建立四個按鈕。

第一種:使用Instantiate() 方法。

for(int i = 0 ;i <4 ;i++)

{

GameObject obj = (GameObject)Instantiate(ButtonPrefabs) ;   //例項化按鈕

        obj.transform.Translate(new Vect3(obj.transform.localPosition.x,obj.transform.localPosition.y+(i*-1.5),obj.transform.localPosition.z)) ;//按鈕顯示的位置

}

//顯示效果 : 垂直排列顯示

//注意:localPosition---自身位置  +(i*-1.5) -----在自身位置的Y軸上移動多少距離(相對於第一個建立的按鈕來講)

第二種: 使用NGUITools()方法.

注意: 匯入NGUI。

for(int i = 0 ;i <4 ;i++)

{

GameObject obj = NGUITools.AddChild(this.gameObject,ButtonPrefabs) ;   //例項化按鈕

        obj.transform.Translate(new Vect3(obj.transform.localPosition.x,obj.transform.localPosition.y+(i*-1.5),obj.transform.localPosition.z)) ;//按鈕顯示的位置

}

注意: NGUITools.AddChild(GameObject parent ,Prefabs pre)  使用NGUITools方法新增物體,前提需要一個父物體。它會相對於這個父物體來新增子物體。

以上這兩種方法建立後,顯示的效果,要麼,是垂直顯示的,要麼水平顯示的。但是,這兩種,在專案中,有些時候滿足不了。例如,我要顯示一個2x2格局式的按鈕位置,怎麼辦?

觀察,Translate()方法,這個方法中需要一個Vect3的引數。像2x2這種格局的,如果要用程式來實現的話,過於麻煩,那麼,我們可以把2x2的按鈕位置(Position)可以用list儲存下來。

list<Vect3> list = new List<Vect3>() ;

//新增位置資料

list.Add(new Vector3(0,0,5.35f)) ;
list.Add(new Vector3(0,0,0.39f)) ;
list.Add(new Vector3(0,-3.2f,0.39f)) ;
list.Add(new Vector3(0,-3.2f,5.35f)) ;

修改上面的程式碼。


for(int i = 0 ;i <4 ;i++)

{

GameObject obj = NGUITools.AddChild(this.gameObject,ButtonPrefabs) ;   //例項化按鈕

        obj.transform.Translate(list[i]) ; //按鈕顯示的位置

}


相關推薦

Unity3D-動態例項按鈕總結

目前,我收集到的動態建立按鈕只有2種方法。 如果誰還有另外動態建立按鈕的方法。可以給我留言,謝謝。 前提:動態建立按鈕,都需要建立一個按鈕預設體ButtonPrefabs,假如,我們建立四個按鈕。 第一種:使用Instantiate() 方法。 for(int i = 0

Python動態例項

  反射機制的工廠方法?反射機制的策略模式? import sys def func1(): print('func1') class TestClass(): def p(self): print('you got me!') def Main():

關於PHP 動態例項可變化類名稱

最近接到一個很奇葩的 需求。。不過也沒有好的解決辦法。。只能這麼做:儲存一個上傳檔案的記錄。。每年新建一個表,表名稱還變化。比如今年就是upload2018,明年就是upload2019了。那麼例項化的話就要隨著當前年份來例項化,經過百度和請教,算是搞完了吧下面是程式碼:$c

java基礎總結(二十六)--例項順序和載入順序總結

      首先載入:載入順序:1.靜態屬性定義 2.靜態方法宣告 (定義和宣告完全結束後) 3. 靜態屬性賦值 4.靜態塊       其次例項化:例項化順序:1.普通屬性定義、2. 普通方法宣告 (定義和宣告完全結束後)3.普通屬性

動態代理模式(例項詳解)

簡介 代理模式通常用於達到對原有系統功能進行擴充的目的 比如:你剛接手一個別人沒有完成的專案,這是你不想動別人原理的程式碼,還需要新增新功能。這時代理模式,這時代理模式,這時代理模式會很好的幫助解決問題 代理模式分為兩種: 靜態代理模式 、 動態代理模式 靜態代理 靜態代理一般是

Spring 執行中 動態載入xml並例項Bean

工作中總有各種各樣另類問題發生,比如像我遇到的需要動態載入指定jar檔案並例項化執行。拿到這個問題,主要問題就是 動態指定的jar檔案不存在於classpath中,如何讓Spring知道並引用 都知道jvm是通過classloader載入class,並且是

Unity3D程式碼動態繫結按鈕事件

在場景載入時,即可繫結所有的事件處理函式,可以繫結onClick的監聽,亦可以繫結其他事件,稍作修改,還可使用於其他GameObject,不一定是Button.public class ScenePl

Unity3D】利用預設、例項Instantiate和協程完成生成器

生成器這東西在遊戲中很常見,不如我們要隨機產生敵人,就需要用到這東西。說白了,我就是需要一個東西在我的要求下,產生大量的物件。在Unity3D直接就提供介面能夠輕鬆完成這一些,我開始還以為生成器是用Unity3D的粒子系統Particle System做的,其實不是,本身就

反射動態呼叫、例項窗體的方法

/// <summary> /// 開啟新的子窗體 /// </summary> /// <param name="strName">窗體的類名</param>

Unity3D例項物體

一:public GameObject itemPrefab;void Store(){        if (transform.childCount == 0)        {                GameObject itemGameObject = Ins

Spring中bean的例項方式與IOC容器總結

提到spring,第一印象就是DI與IOC,雖然有概念上的解釋,但是要理解這些概念還是需要動手進行試驗。如果要深入瞭解spring的原來,那麼最先了解得就應該是spring容器。Spring提供了兩種型別的IOC容器實現:      1.beanFactory: IOC 容器

[原創]unity3D學習【功能實現】之三:例項

用處:一般當場景出現兩個及兩個以上,或者會出現重複的物體的時候,用例項化比較方便 目標:滑鼠點選後,在滑鼠點選的位置出現一個小球 涉及到:預製件,Instantiate(預製件,newVector(

動態載入類並例項物件

一、Class.forName("").newInstance();用於工廠真的是挺好的 1. Class.forName( )靜態方法的目的是為了動態載入類(初始化類)。在載入完成後,一般還要呼叫Class下的newInstance( )靜態方法來例項化物件以便操作。因此

tableView計算動態行高的總結

rect mar view rac 寫到 ora attr ont pen 研究tableView怎麽計算動態行高研究了兩天一直還不太會,今天最終做出來了想要的效果。 首先。我在網上搜集了非常多資料,各種大神的總結,然後開始看、研究、試驗,基本思路都是一樣

unity3d動態加載dll的API以及限制

軟件 ddc line tel 同時 eat 都是 version tails Unity3D的坑系列:動態加載dll 一、使用限制 現在參與的項目是做MMO手遊,目標平臺是Android和iOS,iOS平臺不能動態加載dll(什麽原因找喬布斯去),可以直接忽略,而在

(轉)Unity3d使用心得(2):Unity3d 動態下載動畫資源——AnimationClip 的使用 - 斯瑪特琦

通過 dsm color 解決 con content 資源 sse popu 引言: 在使用 Unity3d 開發微端、或者網頁遊戲的時候常常須要將資源打包成 AssetBundle ,然後通過 www 的方式動態的下載資源。今天要分享的是我再動態下

關於棧的動態初始的問題

cin dpx gem 關於 bgp store drl gin 問題 5JKe俁魄8司竿諧僥8http://shufang.docin.com/qpk277 獵0躥辭o2諧返糜4http://www.docin.com/dmjy2463 2臀酉頗4咳fv斃啥http:

Unity3D動態對象優化代碼分享

transform mil etc sts style like icop 基本 轉載 具體解釋請仔細看註釋裏已經講解的很細致了,這裏就不多廢話了 代碼如下: using UnityEngine; using System.Collections; using

unity3d 動態添加地面貼圖 草地

fse data pan null clas text 解釋 默認 unity TerrainData.splatPrototypes = new SplatPrototype[1]{ new SplatPrototype() { texture

機器學習數據預處理——標準化/歸一方法總結

目標 out enc 並不是 depend 區間 standards ima HA 通常,在Data Science中,預處理數據有一個很關鍵的步驟就是數據的標準化。這裏主要引用sklearn文檔中的一些東西來說明,主要把各個標準化方法的應用場景以及優缺點總結概括,以來充當