我正在开发一款电子应用并发布到 Mac App Store。我的主要目标是在卸载(并重新安装)应用时清除应用创建的用户数据,但在更新时不清除。但...
我正在开发一款电子应用程序并发布到 Mac App Store。
我的主要目标是在卸载(并重新安装)应用程序时清除应用程序创建的用户数据,但在更新时不清除。但这在 MacOS 上是不可能的,因为在 MacOS 上卸载只是将应用程序文件夹拖到垃圾箱,无法进行干预。
因此,我尝试在应用程序首次从全新安装启动时删除用户数据,但我发现无法区分卸载(重新安装)和更新。我尝试通过记住并比较应用程序包文件夹的上次修改日期来检测全新安装,但这两个过程都涉及替换应用程序包文件夹,没有留下任何线索来确定它是全新安装还是更新。
有什么方法可以在重新安装时清除用户数据,但在更新应用程序时保留用户数据吗?
关键思想是实现地面检测,当玩家按下跳跃键时判断角色是否在地面上,只有角色在地面上才可以进行跳跃操作。关键代码如下,尝试将它们添加到你的代码中:
private float groundCheckDistance;
private LayerMask whatIsGround;
private void OnDrawGizmos()
{
Gizmos.DrawLine(transform.position, new Vector3(transform.position.x, transform.position.y) - groundCheckDistance));
}
void Update()
{
isGrounded = Physics2D.Raycast(transform.position, Vector2.down, groundCheckDistance, whatIsGround);
}
另外,你的代码中获取 Rigidbody2D 组件的语法是错误的,正确的方法如下:
rb = GetComponent<Rigidbody2D>();
请参阅“LayerMask”和“Raycast”的用法: 在 Unity 中使用 Layers 和 Bitmask 与 Raycast