public void UpdateScaleByCalcaulateType(ShipModelCalculateType calculateType = ShipModelCalculateType.Length, double length = 0, double width = 0, double height = 0) { if (Ship3DModelInfo == null || (length == 0 && width == 0 && height == 0) || calculateType == ShipModelCalculateType.None) { return; } float scale_x = 1; float scale_y = 1; float scale_z = 1; if (length > 0 && Ship3DModelInfo.Ship3DModelLength > 0) { scale_z = (float)(length / Ship3DModelInfo.Ship3DModelLength); } if (width > 0 && Ship3DModelInfo.Ship3DModelWidth > 0) { scale_x = (float)(width / Ship3DModelInfo.Ship3DModelWidth); } if (height > 0 && Ship3DModelInfo.Ship3DModelHeight > 0) { scale_y = (float)(height / Ship3DModelInfo.Ship3DModelHeight); } if (calculateType == ShipModelCalculateType.Length) { transform.localScale = new Vector3(scale_z, scale_z, scale_z); } else if (calculateType == ShipModelCalculateType.ALL) { transform.localScale = new Vector3(scale_x, scale_y, scale_z); } }与public void UpdateScaleByCalcaulateType(ShipModelCalculateType calculateType = ShipModelCalculateType.Length, double length = 0, double width = 0, double height = 0) { if (Ship3DModelInfo == null || (length == 0 && width == 0 && height == 0) || calculateType == ShipModelCalculateType.None) { return; } bool isUpdate = false; float scale_x = 1; float scale_y = 1; float scale_z = 1; switch (calculateType) { case ShipModelCalculateType.Length: { if (length > 0 && Ship3DModelInfo.Ship3DModelLength > 0) { isUpdate = true; scale_z = (float)(length / Ship3DModelInfo.Ship3DModelLength); } } break; case ShipModelCalculateType.Width: { if (width > 0 && Ship3DModelInfo.Ship3DModelWidth > 0) { isUpdate = true; scale_x = (float)(width / Ship3DModelInfo.Ship3DModelWidth); } } break; case ShipModelCalculateType.Height: { if (height > 0 && Ship3DModelInfo.Ship3DModelHeight > 0) { isUpdate = true; scale_y = (float)(height / Ship3DModelInfo.Ship3DModelHeight); } } break; case ShipModelCalculateType.ALL: case ShipModelCalculateType.None: default: break; } if (isUpdate) { transform.localScale = new Vector3(scale_x, scale_y, scale_z); } }有什么不一样的地方
时间: 2024-05-02 17:18:43 浏览: 218
java对double数组排序示例分享
这两个方法的功能是一样的,都是根据传入的参数来更新物体的缩放比例。但是代码实现上有一些不同:
1. 第一个方法使用了 if-else 的判断语句,而第二个方法使用了 switch-case 的结构。
2. 第二个方法在 switch-case 中对每一种情况都单独进行了判断,而第一个方法则是在每一个 if 中进行判断。
3. 第二个方法使用了一个 bool 变量 isUpdate 来记录是否需要更新缩放比例,而第一个方法则没有。
总的来说,第二个方法的代码更加清晰和简洁,也更加易于扩展和维护。
阅读全文