【发布时间】:2015-12-06 01:30:29
【问题描述】:
我正在创建一个统一的 2D 游戏,在这个游戏中,需要一个名为 Moving_Truck 的游戏对象才能从左侧顺利移动到场景中。由于稍后需要这样做,因此我尝试使该方法从另一个对象上的其他代码运行,该对象称为场景控制,脚本称为打开场景。
问题是当我按下空格键时,Moving_Truck 游戏对象没有移动。我对 C# 相当陌生,并尝试了一些解决方案,例如 Vector2.MoveTowards 和 Vector2.Lerp。我还多次修改我的代码试图让它工作。这是最新版本的代码:
字符库
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);
}
}
开场场景
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 参数。 谢谢。
【问题讨论】: