• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

android - Unity3D的Plattform依赖编译什么时候工作?

[复制链接]
菜鸟教程小白 发表于 2022-12-9 06:50:28 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我有一个来 self 的一个项目的小代码 fragment 。它在脚本中用于拖放菜单。脚本附加到每个项目上,可以拖动。

public void OnDrag(PointerEventData eventData){
    if (isPlantLocked())
        return;

    #if UNITY_EDITOR
        transform.position = Input.mousePosition;
    #endif

    #if UNITY_ANDROID
        transform.position = Input.touches[0].position;
    #endif
}

我得到一个异常(我拖动项目的每一帧),Input.touches.Length 为零,但这个代码区域应该只在 android 上使用,在移动版本上一切正常。

现在我的问题是如何摆脱异常以及平台依赖项何时起作用?



Best Answer-推荐答案


如果您查看“build设置”窗口,有一个“切换平台”按钮可以调整您当前的运行时平台并触发相应指令的编译,即使在编辑器中也是如此。这意味着 UNITY_ANDROIDUNITY_EDITOR 都可以同时为 true 因为 UNITY_EDITOR 意味着你正在运行Unity 应用程序本身。

由于您正在检查输入类型,而第一个是针对鼠标的,您可能希望将 UNITY_EDITOR 替换为 UNITY_STANDALONE,然后确保当您在编辑器中进行测试,您已经设置了正确的当前平台。

另一种选择(如果您永远不会发布独立版本并且它仅适用于非 PC 平台,则更好)是首先检查 UNITY_EDITOR,然后检查 #else if 进入其他选项:

#if UNITY_EDITOR
    transform.position = Input.mousePosition;
#elif UNITY_ANDROID
    transform.position = Input.touches[0].position;
#endif

通过这种方式,您可以更轻松地更换当前的平台设置。

关于android - Unity3D的Plattform依赖编译什么时候工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47582175/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap