我正在創造一個統一的2D遊戲,在這個遊戲中需要一個名爲Moving_Truck的GameObject順利地從左側移動到場景中。因爲這會在稍後需要的時候,我試圖使方法從另一個對象上的其他代碼運行,該對象被稱爲場景控制,並且該腳本被稱爲開放場景。雪碧不移動unity2D C#
問題是當我按下空間按鈕時Moving_Truck遊戲對象不移動。我對C#相當陌生,並嘗試過一些解決方案,如Vector2.MoveTowards和Vector2.Lerp。我也多次修改了我的代碼,試圖使其發揮作用。這裏是最近的代碼版本:
CharacterBase
using UnityEngine;
using System.Collections;
public class CharacterBase : MonoBehaviour {
private float SprSize, HalfSprSize, Distance;
public int run = 1;
public void CharMove(int Dir, string Char, float speed, string BackgroundName)
{
var CharOBJ = GameObject.Find(Char);
var BGOBJ = GameObject.Find(BackgroundName);
SprSize = CharOBJ.GetComponent<Renderer>().bounds.size.x;
HalfSprSize = SprSize/2;
Vector2 EndPos = new Vector2(BGOBJ.transform.position.x, CharOBJ.transform.position.y);
Debug.Log(EndPos);
CharOBJ.transform.position = Vector2.MoveTowards(CharOBJ.transform.position, EndPos, speed * Time.deltaTime);
}
}
OpeningScene
using UnityEngine;
using System.Collections;
public class OpeningScene : CharacterBase {
int Advance = 0, Run = 0;
void Start()
{
}
void FixedUpdate()
{
if (Input.GetKeyUp("space"))
{
Run = 1;
Debug.Log("Space Pressed");
}
if (Run == 1)
{
Run = 0;
Advance += 1;
switch (Advance)
{
case 1:
CharMove(-1, "Moving_Truck", 0.05f, "House_Front");
break;
case 2:
CharMove(1, "Moving_Truck", 0.05f, "House_Front");
break;
}
}
}
}
這是我發瘋,我一直在試圖修復它大約一個小時或兩個現在,有人可以請幫忙,對於長期問題也抱歉,只是評論,如果你需要更多的信息。也請暫時忽略Dir參數。 謝謝。
太感謝你了,它就像一個魅力 – Avian