Я создаю игру в единстве 2D, и в этой игре GameObject под названием Moving_Truck требуется плавно перемещаться в сцену с этой левой стороны. так как это потребуется позже, я попытался заставить этот метод запускаться из другого кода на другом объекте, объект называется управлением сценой, а сценарий называется открывающей сценой.Sprite не двигается в единстве2D 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 Argument. Спасибо.
Большое спасибо, это работает как шарм – Avian