C# 当为实例化的游戏对象设置局部比例时,它会丢失材质

C# 当为实例化的游戏对象设置局部比例时,它会丢失材质,c#,unity3d,gameobject,C#,Unity3d,Gameobject,我正在从Prefact实例化一个游戏对象,我想使用代码设置局部比例,但当我将transform.localScale设置为游戏对象时,它会丢失材质并变为黑色 public GameObject ballObject; public GameObject GetBall(Ball ball) { GameObject gameObject = Instantiate(ballObject, ball.position, Quaternion.identity

我正在从Prefact实例化一个游戏对象,我想使用代码设置局部比例,但当我将transform.localScale设置为游戏对象时,它会丢失材质并变为黑色

public GameObject ballObject;    

 public GameObject GetBall(Ball ball)
     {
         GameObject gameObject = Instantiate(ballObject, ball.position, Quaternion.identity);
         gameObject.transform.localScale = ball.scale; // actually, this line destroys the material
         gameObject.tag = Constants.ballTag;

         return gameObject;
     }


它看起来像“ball.scale”,在一个轴上的值可能为零,这会使对象变平,从而会以这种方式影响外观


检查传入对象的比例值。

奇数。你确定这不是因为中间的鼻子是黑色的,所以它也是黑色的吗?当你说它失去它的材料时,它实际上是在检查员中显示出来的吗?这也是你输入的模型吗?如果是这样,请检查其上的法线,因为在设置比例时,它可能会反转基准,这是模型问题,我设置的是Vector2而不是Vector3。请检查
Debug.Log()
中的比例值,并确保scakl值中没有轴设置为零。