【问题标题】:Moving object head on click in unity统一点击移动对象头
【发布时间】:2012-03-07 06:34:59
【问题描述】:

我是 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 该脚本中应包含什么?或者我可以在不制作单独的正文脚本的情况下运行吗?对不起我的英语。

【问题讨论】:

    标签: c# unity3d


    【解决方案1】:

    问题出在这一行

    public body first_body;
    

    你声明了一个类型为body的变量,但body不是float或bool等内置变量类型。

    在你的脚本中,我不知道你真正想对变量 first_body 做什么,是蛇的身体吗?你能详细解释一下“first_body”吗?

    【讨论】:

    • 是的,我已经将其包括在内以用于我的练习目的,并且在我的代码中遇到问题时我没有专注于它。现在我的蛇正在工作。谢谢:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多