我是Unity 3d的新手。我已经开始练习蛇游戏了。我必须首先向前移动蛇头。如果我按任意键,那么蛇应该开始向前移动。对于它的头部我只采取了一个立方体。 这是代码。请告诉我我在哪里做错了。
public class SnakeMove: MonoBehaviour {
public bool Move_Up;
public bool Move_Below ;
public bool Move_Right;
public bool Move_Left;
public body first_body;
public float time_movement = .5F;
public float following_movement;
// Use this for initialization
void Start () {
Move_Up = false;
Move_Below = false;
Move_Right = false;
Move_Left= false;
following_movement = Time.time + time_movement;
}
// Update is called once per frame
void Update () {
if (Input.GetKeyDown(KeyCode.UpArrow))
{
Move_Up = true;
Move_Below = false;
Move_Right = false;
Move_Left = false;
}
if (Input.GetKeyDown(KeyCode.DownArrow))
{
Move_Up = false;
Move_Below = true;
Move_Right = false;
Move_Left = false;
}
if (Input.GetKeyDown(KeyCode.RightArrow))
{
Move_Up = false;
Move_Below = false;
Move_Right = true;
Move_Left = false;
}
if (Input.GetKeyDown(KeyCode.LeftArrow))
{
Move_Up = false;
Move_Below = false;
Move_Right = false;
Move_Left = true;
}
if (Time.time > following_movement)
{
MoveHead();
}
}
void MoveHead()
{
if (Move_Up)
{
first_body.move(this.transform);
this.transform.position += transform.forward *transform.localScale.z;
}
if (Move_Below)
{
first_body.move(this.transform);
this.transform.position += -transform.forward * transform.localScale.z;
}
if (Move_Right)
{
first_body.move(this.transform);
this.transform.position += transform.right * transform.localScale.z;
}
if (Move_Left)
{
first_body.move(this.transform);
this.transform.position += -transform.right * transform.localScale.z;
}
following_movement = Time.time + time_movement;
}
}
错误是:
Assets / Scripts / SnakeMotion.cs(92,8):错误CS0246:类型或 命名空间名称`body'找不到。你错过了使用吗? 指令或汇编参考?
我应该制作一个正文脚本吗? N该脚本应包含哪些内容?或者我可以运行而不制作单独的Body脚本吗?抱歉我的英文。
答案 0 :(得分:0)
问题在于这一行
public body first_body;
您声明了一个类型为 body 的变量,但是body不是内置变量类型,例如float或bool。
在你的剧本中,我不知道你真的想用变量 first_body 做什么,它是蛇体吗?你能解释一下“first_body”吗?