程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#腳本實踐(一)

C#腳本實踐(一)

編輯:C#入門知識

個人對腳本語言認識不深, 尤其是動態語言...

但是問了好多人為什麼邏輯用腳本寫, 答案都是不用編譯

這也只能怪DT的C++當初沒設計好

由於WOW的成功, 讓lua幾乎成了游戲腳本的標准

原來的python/ruby/tcl啥的一下子就沒落了, 都怪暴雪啊~

雖然lua做為一個腳本語言來說, 非常的完美

但是我對它不是很感冒, 可能習慣了C系語言的語法了

對於C/C++/C#/Java/JS/AS類的我才看著比較順眼

而且, 從學校開始, 好像自己就中了C#的毒一般, 雖然一直沒機會大量應用, 但心中一直念念不忘

這也導致了我把引擎工具用WPF來開發的念頭

今年Unity這個名字在眼前和耳邊不斷地飄過, 其理念非常不錯

而它的腳本是基於Mono的, 冒似實際效果很不錯

這也讓我有了使用C#做為腳本的沖動

如果嫌C#不是動態語言的話, Mono還支持JavaScript和Boo

本來想如果不跨平台的話是不是可以直接使用MS的.Net實現

Google一下到是真有個叫CS-Script的實現, 不過想嵌入NativeC++看來不是那麼好整

所以, 一切還是要從Mono下手, 雖然它的運行效率比MS的要打個折扣, 但再怎麼說也是lua的好多倍

Mono在Windows下的編譯不是很順利, 因為官方的壓縮包裡的sln壓根文件就不全

搜索也沒什麼頭緒, 看來大家都是在linux下搞這玩意

後來從github上下載了最新的代碼, 好不容易在修改了部分路徑下的情況下編譯通過

其中有些.lib是在mono的windows安裝版本中的

Embedded Samples就是嵌入mono的示例程序

以teste為例, 運行時需要依賴mscorlib.dll, 而且那個路徑很奇怪, 竟然是monomsvcWin32_Debuglibmono2.0

這個之後再搞懂怎麼配置

test.cs載入之前要先編譯成test.exe, 然後才能載入運行

這個可以看成是腳本的預編譯, 怎麼直接載入文本執行呢? 這個待研究

P/Invoke方式的調用顯然不實用, 要是能這樣用還不如直接MS的.Net

另外一種腳本調用底層的方法是internal call, 大體看了下好像必須要在C#中再做一次extern聲明

這個看看能不能做自動生成的, 要不然每次改動兩邊都要改多不爽

C++調腳本是通過Mono提供的一系列API來完成的, 如mono_runtime_invoke

另外有個類似luabind的庫, 叫monobind, 可以參考一下

 

\

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved