這是我的第一個從頭開始的游戲專案。我正在嘗試制作彈球游戲,但我不想只是“觀看有關如何制作彈球游戲的視頻”。我想遇到問題并學習如何在它們出現時解決它們。
到目前為止,將腳本附加到精靈是問題 #1,但我已經解決了這個問題。問題 #2 是創建變數并將它們轉換為真實物件值。經過幾個小時的反復試驗,我最終只是復制了其他人的腳本,該腳本具有最基本的設定,然后將其破壞并通過添加 void Update 將其重建為我在下面的內容。
我的問題主要是為了更好地理解,但也是關于我的一個新問題。問題 #3 目前是當我單擊播放時,它只移動物件一次。我認為 void update 應該呼叫每一幀?我也想知道為什么我做transform.position的時候,為什么我不能做transform.position = (value 1, value 2)?從我從實驗中得出的結論來看,改變 transform.position 的唯一方法是每次我不完全理解時都做 = new Vector ......這部分問題的另一種措辭是:有一種更短的撰寫矢量變換的方法,或者這是可以撰寫更改的唯一方法?
下面是代碼。我很感激任何答案,即使它只是在正確的路徑上找到我想要的資訊。
public float width, height, xSpeed, ySpeed, xPosition, yPosition;
public Vector2 position, scale;
void Start() {
// Initialise the variables
width = 0.5f;
height = 0.5f;
xSpeed = 0;
ySpeed = -1f;
xPosition = 0;
yPosition = 3.5f;
// set the scaling
Vector2 scale = new Vector2(width, height);
transform.localScale = scale;
// set the position
transform.position = new Vector2(xPosition, yPosition);
}
void Update() {
transform.position = new Vector2(xPosition xSpeed,
yPosition ySpeed);
}
uj5u.com熱心網友回復:
首先,我建議您將問題的標題更改為更貼切的內容,以便人們了解您的問題是關于什么編程概念!:) 我會推薦類似“如何在 Unity 中進行矢量添加”之類的內容。
我將一一解答您的問題:
是的,每幀都會呼叫更新函式!隨著您的每次呼叫,Update()
一次又一次地將您的位置設定為完全相同的值。這就是為什么它不動。xPosition/yPosition 和 xSpeed/ySpeed 變數在定義后都不會改變Start()
,因此您的更新函式將始終將您的位置設定為(0, 2.5, 0)
。
你可以做矢量加法!但是為了做到這一點,您需要在代碼中正確撰寫它,我的意思是您需要從要添加的值中創建一個向量,然后才能將它們添加到位置向量中!所以如果你想在你的位置上添加 xSpeed/ySpeed 值,它看起來像這樣:
transform.position = new Vector2(xSpeed, ySpeed);
我希望這會有所幫助!
uj5u.com熱心網友回復:
在 Jayne 的幫助下,這就是代碼最終變成的樣子,希望這可以幫助那些只想用一種簡單的方法來改變向量的人:
public float width, height, xSpeed, ySpeed, xPosition, yPosition;
public Vector2 position, scale;
void Start() {
// Initialise the variables
width = 0.5f;
height = 0.5f;
xSpeed = 0;
ySpeed = -0.01f;
xPosition = 0;
yPosition = 3.5f;
// set the scaling
Vector2 scale = new Vector2(width, height);
transform.localScale = scale;
// set the position
transform.position = new Vector2(xPosition, yPosition);
}
void Update() {
// Move the pinball
xPosition = xSpeed;
yPosition = ySpeed;
transform.position = new Vector2(xPosition, yPosition);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/488296.html
上一篇:Unity:在網格上尋找最低頂點