我正在创造一个统一的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