我一直在尋找這個幾個小時,並沒有得到任何結果。我有一個名爲GameSetup.js的腳本,它連接到一個空的遊戲對象(名爲GM)。它擁有對我當前相機的引用,並具有獲取屏幕寬度和其他內容的功能。我想從其他腳本訪問這些函數(和變量)。所以例如我有另一個空的遊戲對象叫做「Blocks」,它的一個組件是BlockGenerator.js,它具有BlockGenerator()函數。我希望能夠像這樣使用屏幕寬度()在BlockGenerator():從Unity中的另一個腳本訪問函數和變量
BlockGenerator.js
BlockGenerator(){
var Blocknumber : int = GameSetup.ScreenWidth/blockWidth;
}
GameSetup.js
function ScreenWidth() : float{
var screenWidth : float = (mainCam.ScreenToWorldPoint(new Vector3(Screen.width,0f, 0f)).x)* 2;
return screenWidth;
當然GameSetup的
無法識別在BlockGenerator.js中,例如,如果我使用GetComponent()。我不確定是否可以將GM遊戲對象拖放到檢查器中,並將其傳遞給BlockGenerator.js,我還沒有嘗試過。但事情是,它使遊戲腳本非常複雜,沒有理由。我如何設置和訪問全局函數和變量?
我不想處理檢查員,因爲如果你有一個由幾個腳本使用的變量,將它在檢查器中的對象拖到所有腳本將是一團糟。但是我使用了你建議的第二種方法。所以我標記了GM GameObject並在BlockGenerator.js中使用了以下行來訪問ScreenWidth函數: var screenWidth:float = GameObject.FindGameObjectWithTag(「GM」)。GetComponent(GameSetup).ScreenWidth(); – user3383731