只在一侧扩展游戏对象

我已经将Cube添加到场景中并且我缩放并放置到位置(0,0,0)。 我正在使用附加到Cube的代码来缩放Cube

IEnumerator Start() { StartCoroutine("DoSomething", 2.0F); yield return new WaitForSeconds(1); StopCoroutine("DoSomething"); } IEnumerator DoSomething(float someParameter) { while (true) { transform.localScale += new Vector3(0, 0.1f, 0); yield return null; } } 

但立方体在两侧,顶部和底部都有刻度。 我想用相同的因子进行缩放,但是Cube的底部保持在相同的位置。 我试图在transform.localScale += new Vector3(0, 0.1f, 0);之间设置新的位置transform.localScale += new Vector3(0, 0.1f, 0);yield return null; 但我不知道如何获得确切数额。 (我试着读

 Mesh planeMesh = gameObject.GetComponent().mesh; Bounds bounds = planeMesh.bounds; bounds.size.y; 

在比例之前和之后加上

transform.position.y boundsAfter.size.yboundsBefore.size.y之间的boundsBefore.size.y

但它移动得太多了。

怎么解决这个?

实际上你可以用两种方式做到这一点。

方法1

从外部应用程序更改轴心点。

在Maya等3D软件中创建一个简单的多维数据集,然后将枢轴点定位到多维数据集的底部,然后将其导出Unity。 这应该是开箱即用的。

方法2

将多维数据集父级添加到空GameObject。

步骤

A.创建一个空GameObject。

B.将新GameObject移动到多维数据集的位置,然后将该新GameObject的y轴移动到多维数据集的底部。 必须通过放大来精确定位y-pos。有关详细信息,请参阅下面的动画。

C.现在将Cube拖动到新的GameObject,并且该多维数据集应该是该新GameObject的子级 。 您现在可以将问题中的脚本附加到新的GameObject ,它应该只在一侧缩放立方体。 不要忘记删除直接附加到多维数据集的旧缩放脚本。

图像教程。 高品质版本。

在此处输入图像描述

您可以使用Slider来实现此目的。 我正在设计一个加载栏,我需要根据下载进度来增加加载器的宽度。 您可以禁用其句柄,并使用自定义Sprite来加载填充百分比。 您也可以使用自定义Sprite作为背景。 要使用Slider,请转到菜单栏 – > GameObject – > UI – > Slider。 或者您可以从Inspector为所需的GmaeObject添加滑块组件(选择要添加滑块的GameObject – >在Inspector中单击添加组件 – > UI – >滑块。现在设置填充矩形和其他选项)。 您可以将滑块设置为从左到右,从右到左,从下到上,或从上到下。

在剧本中

 using UnityEngine.UI; public class SliderExample : MonoBehaviour { public Slider slider; // Drag and Drop Slider GameObject in Unity Inspector float percentageCompleted; void Update() { slider.value = percentageCompleted; // specify percentage Completed, if required Divide by 100 as Slider values are from 0 to 1 or set Max Value in Inspector as 100 } } 

您还可以观看此Brackeysvideo,获取有关设置滑块“ https://www.youtube.com/watch?v=YMj2qPq9CP8 ”的一些帮助。