美术在做场景的时候可能会出现这个情况? 如下图所示,这个地块的中心点远离模型十万八千里?与其相信美术或者策划我觉得程序要更相信自己!!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
[MenuItem ("MyMenu/Do Test")] static void Test () { Transform parent = Selection.activeGameObject.transform; Vector3 postion = parent.position; Quaternion rotation = parent.rotation; Vector3 scale = parent.localScale; parent.position = Vector3.zero; parent.rotation = Quaternion.Euler(Vector3.zero); parent.localScale = Vector3.one; Vector3 center = Vector3.zero; Renderer[] renders = parent.GetComponentsInChildren<Renderer>(); foreach (Renderer child in renders){ center += child.bounds.center; } center /= parent.GetComponentsInChildren<Transform>().Length; Bounds bounds = new Bounds(center,Vector3.zero); foreach (Renderer child in renders){ bounds.Encapsulate(child.bounds); } parent.position = postion; parent.rotation = rotation; parent.localScale = scale; foreach(Transform t in parent){ t.position = t.position - bounds.center; } parent.transform.position = bounds.center + parent.position; } |
OK 大功告成。 中心点居中了。。
- 本文固定链接: https://www.xuanyusong.com/archives/3643
- 转载请注明: 雨松MOMO 于 雨松MOMO程序研究院 发表
捐 赠写博客不易,如果您想请我喝一杯星巴克的话?就进来看吧!
谢谢 原本不居中的变得更不居中 遇到牛的模型师了
(ΩДΩ) 这到底是什么神仙大神, 小白学到了! 真的好用! (膜拜)
这有个前提,就是原本父物体坐标必须跟世界坐标统一,不然模型要动,想避免这个问题的话,将旋转的选项从头到尾都去掉,就不影响了。
1、改父物体旋转为0,0,0
2、循环执行三次,才能对的准确
3、再把父物体的旋转改回去
您好,您的方法我试了,没有用啊,不知道是什么原因,结果只是模型移动了,中心点还是不对。
今天用到了,thanks。
呵呵。。
好机智啊
老师你好,想问一下,怎么能在移动平台上屏幕的一部分播放视频,现在是全屏播放
得用java 或者oc 单独来写了。。
用MovieTexture不能实现吗???
非常好啊 经常碰到这种问题..都是在外面建一个父物体..