Unity疑难杂症及细节记录(持续更新)

1.在OnMouseDown()中使用了EventSystem.current.IsPointerOverGameObject(Input.GetTouch(0).fingerId)如果无效,可以尝试:

private bool IsPointerOverUIObject()

    {

        PointerEventData eventDataCurrentPosition = new PointerEventData(EventSystem.current);

        eventDataCurrentPosition.position = new Vector2(Input.mousePosition.x, Input.mousePosition.y);

        List results = new List();

        EventSystem.current.RaycastAll(eventDataCurrentPosition, results);

        return results.Count > 0;

    }

EventSystem.current.currentSelectedGameObject!=null 也能够判断是否点到了UI,但是似乎也有使用条件,还未深入了解,总之上面那串实测能用。

解决方案链接:https://answers.unity.com/questions/1115464/ispointerovergameobject-not-working-with-touch-inp.html

2.移动端安卓真机VS调试

解决方案链接:https://blog.csdn.net/ACwawayu/article/details/90242631

3.发现编辑器中Service标签页无法加载(无内容/黑屏)

来到service标签页---断开网络---然后刷新一下service标签页---这个时候会出现一些文字(项目名什么的,但是没有unityads什么的按钮)---接着打开网络---刷新service标签页---完成。

我这里重新关闭了service标签页,又变黑了,重新重复上面的操作即可

4.使用blender导入unity后,发现模型在x轴上自动旋转大约90°

方法1:导出fbx时点击"!EXPERIMENTAL! Apply Transform"(中文:“!实验性!应用变换”)。此方法不清楚有何风险

方法2:在blender中倒过来旋转x轴90°,然后再应用变换。

5.如何面吸附移动?

在unity中,按住v(默认)是根据vertex顶点进行吸附。

那么在按住v选择好顶点后,同时按住Shift+Ctrl,这时候物体将根据选择好的顶点在某个面吸附移动。

在不按住v的情况下,只按Shift+Ctrl,是根据物体的中心/轴心(根据选择)进行吸附移动。

6.LoadSceneAsync如果无效可以尝试放在Start()中而不是Awake()中

7.ScrollBar的步数应该是所需要的步数+1,比如你需要10步,那么就设置Number of steps为11

8.关于如何判断场景scene是否存在?

不能使用Scene.isvalid()来判断,不管如何他都会抛出错误

可以使用SceneUtility.GetScenePathByBuildIndex/GetBuildIndexByScenePath来判断,当场景为空时,字符串对应方法会返回空字符串,index会返回-1值

9.有时候发现按钮点击无效?可交互也点击了,事件也绑定了,为什么还是不能点击?不要忘了给场景添加EventSystem。右键-UI-EventSystem

10.当你发现类似于“Source mesh Combined Mesh (root: scene) does not allow read access”这种说mesh需要read权限的报错但是你已经开启了权限的时候,注意一下物体有没有勾选static,如果勾选了就依然会报错

你可能感兴趣的:(Unity疑难杂症及细节记录(持续更新))