用unity3d實現簡單chat對話

2021-06-21 12:10:52 字數 3328 閱讀 1586

本文是解釋鷹大的多人聯網例項example1思路,由於自己理解的問題,不足地方請斧正。。。

------------------------------------------華麗的分割線--------------------------------------------

主線流程

1.      awake 【設計遊戲視窗 獲取玩家名字】

function awake()	

}

2.      ongui 【判斷是否顯示聊天視窗建立聊天視窗處理回車[獲取輸入焦點]】

function ongui ()

gui.skin = skin;

//當前處理的事件如果是按鍵按下 並且按下的按鍵是回車鍵 並且未有輸入值【沒輸入時按回車鍵】

if (event.current.type == eventtype.keydown && event.current.character == "\n" && inputfield.length <= 0)

else

guilayout.endhorizontal();

//下邊的範圍 3畫素空隙【不加沒有滾動條顯示】

guilayout.space(3);

}// end the scrollview we began above.

guilayout.endscrollview ();

//如果輸入值後按下空格鍵

if (event.current.type == eventtype.keydown && event.current.character == "\n" && inputfield.length > 0)

//為輸入控制項命名

gui.setnextcontrolname("chat input field");

inputfield = guilayout.textfield(inputfield);

//滑鼠左鍵按下時

if(input.getkeydown("mouse 0"))

}}

4.      傳出對話 【消除換行將對話加入到對話表初始化會話資訊】

function hitenter(msg : string)

連線(connect):

1.      客戶端onconnectedtoserver()

l        標識顯示對話方塊

l        通知伺服器將此客戶端資訊傳入玩家列表

function onconnectedtoserver()

2.      伺服器onserverinitialized()

l        標識顯示對話方塊

l        直接將伺服器資訊存入玩家列表[當伺服器也作為乙個玩家存在]

l        通知顯示伺服器加入對話【系統通知】

function onserverinitialized()

伺服器onplayerconnected(player: networkplayer)

l        傳遞顯示加入玩家加入遊戲的資訊【系統通知】

function onplayerconnected(player: networkplayer)

掉線(disconnect)

1.        客戶端ondisconnectedfromserver()

l        標記隱藏對話方塊

function ondisconnectedfromserver()

2.        伺服器onplayerdisconnected(player: networkplayer)

l        傳遞顯示玩家掉線的資訊【系統通知】

l        在玩家列表刪除掉線玩家資訊[依賴networkplayer獲取具體玩家資訊]

function onplayerdisconnected(player: networkplayer)

封裝函式

1.      rpc函式

l        通知伺服器將客戶端的資訊傳入玩家列表【將傳入的資訊加入玩家列表通知顯示該玩家加入對話】

@rpc

//sent by newly connected clients, recieved by server

//伺服器獲得客戶端傳輸的玩家資訊,並廣播

function tellserverourname(name : string, info : networkmessageinfo)

l        將對話加入到對話表

@rpc

//將滾動條y軸數值設定極大,使得每次輸入後螢幕上都顯示最後一次輸入的內容

scrollposition.y = 1000000;

}

2.      普通函式

l        依賴networkplayer獲取具體玩家資訊【逐條從玩家列表取出資訊比對】

function getplayernode(networkplayer : networkplayer)

} debug.logerror("getplayernode: requested a playernode of non-existing player!");

return null;

}

l        標識顯示對話方塊【標識顯示對話方塊輸入值、對話列表初始化】

function showchatwindow ()

l        標識隱藏對話方塊【標識隱藏對話方塊輸入值、對話列表初始化】

function closechatwindow ()

l        遊戲資訊的通知【系統通知】

//輸出遊戲資訊【**登入等等】伺服器的通知

function addgamechatmessage(str : string)

}

Unity3D簡單工具

在場景檢視中導航根據使用的滑鼠的不同,有很多不同的方式可以在場景檢視中導航。使用三鍵滑鼠按住 option按鈕並拖動滑鼠左鍵可以使用旋轉模式 orbit mode 按住 option按鈕並拖動滑鼠中鍵可以使用拖動模式 drag mode 按住 option按鈕並拖動滑鼠右鍵可以使用縮放模式 zoom...

Unity3D開發(九) Unity3d流光效果

遊戲開 壇 hello game 遊戲開發群 201276069 之前曾經注意過material 中紋理的屬性都有 tiling 和offset 但沒有深究過其用途,今天才知道竟然可以利用 offset做uv 動畫,從而完成各種有趣的動畫,比如流光效果!流過效果即通常一條高光光在物體上劃過,模擬高光...

unity3d 相機Camera簡單介紹

一 檢視面板 二 面板介紹 1 ckearflags 空白旗子,把空白的地方顯示 skybox 天空盒子 solider color 純色顯示 depth 只看深度高低 顯示物體 空白不管 黑色 don t clear 只顯示物體,其他都不顯示 具體有待補充 2 background 設定純色的背景...