为什么导出到 Unity WebGL 会改变游戏中对象的速度?

Why does exporting to Unity WebGL change the speed of objects in my game?

目标
所以我制作了一个 space-invaders 类型的游戏来练习团结,我想像过去一样将它上传到 Itch.io。 This是游戏的片段。
我在构建设置等中将平台切换到 WebGL,在 Unity 中一切正常。

问题
但是,当我构建它并将 zip 文件上传到 Itch.io、the aliens are now a lot faster than usual 时。
(请注意,可能还有其他内容发生了变化,我只是无法触及它们,因为它非常困难)。

代码

外星人运动:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class AleenController : MonoBehaviour
{
    Rigidbody2D rigidbody;

    public float speed = 10f;

    ScoreController scoreController;

    AudioSource aleenDie;

    void Start()
    {
        scoreController = GameObject.Find("Canvas/Score").GetComponent<ScoreController>();
        rigidbody = GetComponent<Rigidbody2D>();
        aleenDie = GameObject.Find("Main Camera/AleenDie").GetComponent<AudioSource>();
    }

    void Update()
    {
        rigidbody.MovePosition(transform.position + new Vector3 (0, -1, 0) * speed * Time.deltaTime);
    }

    void OnTriggerEnter2D(Collider2D other)
    {
        if (other.gameObject.tag == "laser")
        {
            aleenDie.Play();
            scoreController.score += 1;
            Destroy(gameObject);
        }
    }
}

注意
我真的很难找出这里出了什么问题,因为一切都很好。如果您确实需要更多详细信息,请发表评论。

如果你使用物理学,你应该

  • 根本没有通过 Transform 设置或获取值
  • FixedUpdate
  • 做事

一般来说,虽然在你的情况下而不是使用

void Update()
{
    rigidbody.MovePosition(transform.position + new Vector3 (0, -1, 0) * speed * Time.deltaTime);
}

只需设置一次速度,例如

void Start ()
{
    ...

    rigidbody.velocity = Vector3.down * speed;
}

其余部分似乎取决于您的屏幕尺寸。看起来您正在以像素 space 为单位移动元素 -> 显示越小,顶部和底部之间的像素距离越小 -> 元素似乎移动得越快。