Unity 中 SendMessage的使用

2021-09-07 16:15:35 字數 882 閱讀 1617

方法的使用

今天閱讀別的**的時候頻繁出現了使用sendmessage方法,雖然一直知道unity有這個訊息傳送的方法,但也一直沒有詳細了解用過,就看了看文件測試了一下。

public void sendmessage(string methodname,object value = null, sendmessageoptions options = sendmessageoptions.requirereceiver);
顧名思義,第乙個引數就是要呼叫的方法名,就是響應sendmessage方法的目標方法,

第二個引數是第乙個引數可以傳遞的引數,第三個引數是設定本次sendmessage是否需要有接收方,預設引數是需要有接收方的,如果在訊息接收物件身上沒有這個方法,就會報錯,如果傳遞引數sendmessageoptions.dontrequirereceiver則即使接收訊息的物件身上沒有這個方法,也不會給你報錯。

新建 send.cs 指令碼,receive1.cs指令碼,receive2.cs指令碼。

實現 send.cs:public transform target;void update () }在receive1.cs 和receive2.cs裡實現 onhit(string type)方法private void onhit(string type)在unity場景中新建兩個gameobject : send ,receive

send 掛載 send.cs receive 掛載 receive1.cs 和receive2.cs

將receive 指定給 send上的targe.

執行 按下空格

發現 receive上面掛載的兩個指令碼中的onhit方法全都響應了

關於unity中BindChannels的理解

官方文件 乙個博主的部落格 其實 bindchannels 命令主要幹的事情,就是可以重新對映繫結語義的資料來源和目標硬體。部落格裡所舉的例子 就是改變了texcoord 紋理座標 儲存資料的位置順序。因為unity中一般會把 lightmap 的 uv 存在第2個texcoord中,也就是texc...

Unity中 噪音演算法

主要是利用 unity 的mathf.perlinnoise 函式 柏林雜訊 的不同尋常的功能。其中乙個例項 是生成 柏林雜訊。第二個例項是動畫效果 看似y軸 的隨機運動,對隨機的動畫來講很好啊!這樣設定 得到 函式的返回值是 0 12 一樣的輸入,輸出也必將是一樣的 比如下面的測試,輸出一直是 0...

unity 持續學習中

我常因含鹽量過高而合大佬們格格不入 public transform pivot 座標位置相關屬性 if pivot return transform 物件為什麼返回了布林值?滿臉問號 ray ray camera.screenpointtoray input.mouseposition priva...