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<RaycastResult> results = new List<RaycastResult>();
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值