首先 经过测试发现 ,给图表设置forword=相机的forword就实现了图表一直朝向相机,而且不会正反颠倒
其次在研究摆放的时候发现总是无法左右居中,以及无法控制前后,
我发现修改x 不代表就是我认为的往左右调整, 修改z也不代表往前后,经过几天的踩坑 ,
先排查是否是缩放导致的, 通过计算缩放的值发现并不能解决问题
经过测试创建立方体
但是尝试创建一个立方体 然后让图表位置等于立方体位置发现立方体刚好位于圆盘上方,说明立方体没问题,那么我仔细对比发现我是改动了 z轴导致,我把z轴就等于被点击物体的z轴 x轴就等于被点击物体的就发现居中了,接下来是如何让物体靠前
我尝试在position中修改z轴或者+Vector.forword都不能解决问题
反而导致又无法居中了,
然后尝试
chartGameObject.transform.Translate(Vector3.forward*3);
发现依然如此,导致无法居中了,而且并没有向前,
突然我又想到了一个东西LookAt
终于 3句话全部写上去才成功让3d图表插入到游戏物体上面而且 还往前一些。
GameObject test= GameObject.CreatePrimitive(PrimitiveType.Cube);
test.transform.SetParent(ChartCanvasManager.Instance.transform);
test.transform.position = chartGameObject.transform.position = new Vector3(myRoomMaterials.transform.position.x, 4.98f, myRoomMaterials.transform.position.z);//
chartGameObject.transform.LookAt(Camera.main.transform);
chartGameObject.transform.Translate(Vector3.forward*3);
但是 我尝试用
首先是摆放位置
其次是转向
然后让物体往前走3米
chartGameObject.transform.DOLocalMove(chartGameObject.transform.localPosition+(Vector3.forward*2), 2);
这样发现并不是朝向摄像机移动所以搞不懂到底哪里出问题了 无论是本地坐标还是世界坐标都不好使了。
关于 高度不准问题
高度也跟物体的锚点 以及 被插入的物体锚点有关,创建一个立方体默认是居中的,如果调整后刚好插入到顶部,但是进行放大后,则此位置有偏差,需要根据缩放之后的大小减半 操作
但是由于被点击的物体有的中心点不一致,目前我暂时根据服务器配置读取自动摆放高度。