早教吧 育儿知识 作业答案 考试题库 百科 知识分享

unity3d问题transform.rigidbody.centerOfMass=newVector3(0,-1.5f,0);transform.rigidbody.centerOfMass.y=-1.5f;这两句为什么第二句是错的呢,说错误15无法修改“UnityEngine.Rigidbody.centerOfMass”的返回值,因为它

题目详情
unity3d问题
transform.rigidbody.centerOfMass = new Vector3(0,-1.5f,0);
transform.rigidbody.centerOfMass.y = -1.5f;
这两句为什么第二句是错的呢,说
错误 15 无法修改“UnityEngine.Rigidbody.centerOfMass”的返回值,因为它不是变量
▼优质解答
答案和解析
因为Vector3是一个值类型,所以getter返回的是centerOfMass的拷贝,如果编译器不报错的话,
transform.rigidbody.centerOfMass.y = -1.5f只会修改拷贝的值,而不是centerOfMass本身的值,显然这不是你想要的结果,所以编译器就直接报错了,告诉你如果要赋值的话就使用第一种写法。