2013年7月24日 星期三

Unity 3D revisit!

NetworkView.RPC
Network

果然是之前沒搞懂
所以 Network.Instantiate 產出的東西(子彈, 飛刀)沒有以 network.destory 刪除掉!
而 這Network.Instantiate 是 RPC buffered! 所以後來加入遊戲的玩家也會"看到" 這之前產生的物件的產生 所以有重播的感覺!

NetworkView.RPC 是比較低階的東西 所以能選擇的東西也比較多!
其限制是 不同主機的同一個script! 所以 從aaa.cs 發出的RPC 只能跟 其他電腦的同一個aaa.cs 裡頭溝通

---
相對於 RPC 或是 Network.Instantiate
本機自己互相溝通就比件多選擇
BroadcastMessage
Description
Calls the method named methodName on every MonoBehaviour in this game object or any of its children.
SendMessage
Description
Calls the method named methodName on every MonoBehaviour in this game object.
差異是 SendMessage只能跟同一個GameObject 的Scripts 溝通
B...M...可以跟GO 底下GO的scripts 就是磋比較廣 也比較耗資源

access hierarchy中 parent (gameObject)
childObject.transform.parent.gameObject

Instantiate a prefab inside a hiearcy
newGameObject.transform.parent = parentGameObject.transform

附帶一提 Ardbeg 10y 加點水喝口感真的不同!

2013年4月22日 星期一

Node.js!

最近被Node.js 煞到 想要用這個重寫 Sos2...
所以又繼續來做筆記
express(node.js framework), jade(html parser)
現在故意先不用mongodb 這種 noSQL
而先只使用json 來儲存/讀取檔案 只因為 SOS2 這早期的cgi game 並不使用database...

---
html post 要做的事:
//app.js:
app.post( '/create', routes.create );

//這裡 post 表示 post 方法 !(所以只能用 get/post in html!)
//create 只是 routes.create 這裡頭的 exports.create方法 並沒有特別意義!

//routes.create 所在的地方:
exports.create = function ( req, res ){ };

兩個看起來很像的東西 意義並不同
app 是根目錄 要告訴她去哪邊找東西執行
index.js (routes.create所指向的地方) 算是子目錄

你永遠是位在 app.js  所以不用"移動"到index.js或是login.js去做事(這樣理解應該沒錯)
這跟 php framework的實作 FUEL CMS 有點像 因為都是MVC 架構吧