transform.SetParent(ParentTra) 如果ParentTra的scale不是(1,1,1),会导致子物体变形
2017-09-02 15:37
573 查看
SetParent(ParentTra) 这个方法,经常会导致scale被改变,多多少少有一点,如果本身或者父对象的scale已经改变很大,变化的就更明显,测试了好几个版本都有这问题,就自己尝试解决了一下,下面这个方法可以解决我项目中的问题,有一层父级和无父级的都测试通过了
public GameObject Parent;
void thisSetParent()
{
Vector3 ParentlossyScale = Parent.transform.lossyScale;
Vector3 newScale = new Vector3();
newScale.x = transform.lossyScale.x / ParentlossyScale.x;
newScale.y = transform.lossyScale.y / ParentlossyScale.y;
newScale.z = transform.lossyScale.z / ParentlossyScale.z;
transform.SetParent(Parent.transform);
transform.localScale = newScale;
}
层级再多并且scale小数点后的位数太多还是有问题,那就配合下面这方法(我的项目里,经常会set parent null,所以再配合下面的方法,已经可以解决我的问题,)
private Vector3 thislossyScale;
void Start()
{
thislossyScale = transform.lossyScale;
}
void SetParentNull()
{
transform.SetParent(null);
transform.localScale = thislossyScale;
}
如果有不对的地方欢迎指正,谢谢(286254418@qq.com)
public GameObject Parent;
void thisSetParent()
{
Vector3 ParentlossyScale = Parent.transform.lossyScale;
Vector3 newScale = new Vector3();
newScale.x = transform.lossyScale.x / ParentlossyScale.x;
newScale.y = transform.lossyScale.y / ParentlossyScale.y;
newScale.z = transform.lossyScale.z / ParentlossyScale.z;
transform.SetParent(Parent.transform);
transform.localScale = newScale;
}
层级再多并且scale小数点后的位数太多还是有问题,那就配合下面这方法(我的项目里,经常会set parent null,所以再配合下面的方法,已经可以解决我的问题,)
private Vector3 thislossyScale;
void Start()
{
thislossyScale = transform.lossyScale;
}
void SetParentNull()
{
transform.SetParent(null);
transform.localScale = thislossyScale;
}
如果有不对的地方欢迎指正,谢谢(286254418@qq.com)
相关文章推荐
- Unity手工加入子。 addChild setParent Transform。Unity 枚举子
- 使用TextureView setTransform(Matrix)方法,解决Camera显示变形问题
- 如果ListView中的单个Item的view中存在checkbox,button等view,会导致ListView.setOnItemClickListener无效
- 使用TextureView setTransform(Matrix)方法,解决Camera显示变形问题
- 如果你在iphone6plus下看到[UIScreen mainScreen].scale不是3.0
- 屏幕适配 -- setContentScaleFactor的用处
- hibrenate 为什么用set 作为集合使用而不是用list 等使用。
- ASP.NET - (Session)后台登陆时,判断是不是已经登陆,如果不是,跳转回登陆页
- 输入100以内的数,累加求和,如果输入不是100以内的提示用户重新输入
- Error:Execution failed for task ':app:transformClassesWithDexForDebug'. > com.Android.build.api.tra
- 自定义控件三部曲之动画篇(三)—— 代码生成alpha、scale、translate、rotate、set及插值器动画
- (如果不是标题必须输入,这里绝对是空的,如果看到了什么东西,你就当作没看到)
- ImageView.setScaleType(ImageView.ScaleType)
- 【Java面试题】42 TreeSet里面放对象,如果同时放入了父类和子类的实例对象,那比较时使用的是父类的compareTo方法,还是使用的子类的compareTo方法,还是抛异常!
- html不随放大缩小而变形——initial-scale
- unity,set ugui rectTransform anchor by script
- CSS动画:Transform中使用频繁的scale,rotate,translate动画
- (4.1.23.5)自定义控件三部曲之动画篇(三)—— 代码生成alpha、scale、translate、rotate、set及插值器动画
- Android Camera setRecordingHint(true)函数 在部分手机上的问题,例如拉伸,变形
- Please make sure the TESSDATA_PREFIX environment variable is set to the parent directory of your "te