【问题标题】:Unity 2D - Tap Image to accelerate carUnity 2D - 点击图像加速汽车
【发布时间】:2019-12-07 20:34:32
【问题描述】:

我正在制作一个 Hill Climb Racing 克隆作为学校项目。目前我的车在我的编辑器(movement = Input.GetAxis("Horizontal");)中使用 A 和 D 键加速,但是游戏必须适用于 Android,因此就像在 OG 游戏中一样,我添加了 2 个用于刹车和踏板的精灵,并向它们添加了 EventSystems,例如.:

public void OnPointerDown(PointerEventData eventData)
{
    gas.sprite = OnSprite_gas;
    is_clicking = true;

}

而且我不知道如何将加速度更改为单击并按住气体图像时以及在按住制动器时如何制动(但不倒退)。

【问题讨论】:

    标签: unity3d onmousedown


    【解决方案1】:

    你似乎走在正确的轨道上。

    在汽车的Update() 方法中,您将要检查是否设置了刹车或加速按钮is_clicking 属性,并处理移动力。 这可能类似于:

    void Update()
    {
        if (accelerator.is_clicking)
        {
            movement = new Vector3(1f, 0f, 0f) * speed;
        }
        else if (brake.is_clicking)
        {
            movement = new Vector3(-1f, 0f, 0f) * speed;
        }
        else
        {
            movement = new Vector3(0f, 0f, 0f);
        }
    }
    
    void FixedUpdate()
    {
        rb.AddForce(movement * Time.fixedDeltaTime);
    }
    

    然后您可以检查速度是否接近 0 以停止施加制动力。

    【讨论】:

    • Thanx,但是使用这种方法我注意到它在按下一次后会自动加速,所以我使用的是:back_tire.AddTorque(0.7f * speed * Time.fixedDeltaTime); front_tire.AddTorque(0.7f * speed * Time.fixedDeltaTime); car_body.AddTorque(0.7f * speed * Time.fixedDeltaTime);
    • @ChrisFodor 给车轮增加扭矩是个好主意!此外,我最初错过了一个 else 条件,如果没有单击任何按钮,它将消除力。我已经更新了答案以反映这一点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多