点击时移动物体头部
本文关键字:头部 移动 | 更新日期: 2023-09-27 18:26:55
我是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):error CS0246:类型或找不到命名空间名称"body"。你错过了一次使用吗指令还是程序集引用?
我应该也做一个身体脚本吗?N那个脚本应该包含什么?或者我可以在不制作单独的Body脚本的情况下运行吗?对不起我的英语。
问题出在这条线上
public body first_body;
您声明的变量的类型为body,但body不是内置变量类型,如float或bool。
在你的脚本中,我不知道你实际上想对变量first_body做什么,它是蛇的身体吗?你能详细解释一下"第一身体"吗?