我的是unity2018,該版本已經將創建JavaScript腳本的功能下架了,而我所使用的教材有幾篇是使用JavaScript腳本撰寫的,我將上述陳述句轉換成c#如下,但在運行的時候有關waypoints這個變數的位置都會出現無法實體化的問題,我也查過了JavaScript里面array的用法,是要加new進行動態分配容量的,而c#似乎不能直接在宣告變數的時候借用array()實作動態分配的,只能初始化特定大小的型別陣列。
希望大神能說一下JavaScript里面的array()這個函式用c#該怎么撰寫

uj5u.com熱心網友回復:
Static去掉在屬性面板分配值uj5u.com熱心網友回復:
這個變數肯定是要加static實作全域共享的,因為在findclosest這個靜態函式里面有使用waypoints這個變數,所以我在其他函式里面使用靜態函式,里面涉及的變數也要實作全域共享。
uj5u.com熱心網友回復:
1.首先你的教程是過時的2.unity支持的并不是js 而是unityscript只是書寫格式類似
3.2018已經不支持
你可以直接用list集合 List<AutoWayPoint> list;
你這里的function 并不是對應的型別 另外你需要了解一下C#的語法
你這個直接 UnityScript 翻譯成C#的cs 翻譯得差距太大了 語法有問題
并不是代碼不報錯就能運行 你要看懂它講的是啥意思
第一步是干啥 第二步是干啥 為什么在這里初始化了一個集合 干嘛用 什么時候執行 什么時候清空 能不能復用!
加油! 有什么疑問可以留言
uj5u.com熱心網友回復:
嗯嗯,現在該用集合了。還有一個問題啊,findclosest函式冒號后面接一個autowaypoint是什么意思,是回傳型別,還是指繼承
uj5u.com熱心網友回復:
類似C# 里面的強制where 型別方法或者函式這里 C#沒有這種語法 只有類才可以指定型別
不過看起來像是繼承
你直接強制型別 即可
unityscript 的語法 跟js和c#還是有 區別的
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/25678.html
標籤:Unity3D
下一篇:u3d 遍歷子控制元件,用非遞回
