我已将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);
和yield return null;
之间设置新的位置,但我不知道如何获得确切的金额。
(我试着读了
Mesh planeMesh = gameObject.GetComponent<MeshFilter>().mesh;
Bounds bounds = planeMesh.bounds;
bounds.size.y;
在比例之前和之后加入
transform.position.y
之间的区别
boundsAfter.size.y
和boundsBefore.size.y
但是动作太多了。
如何解决这个问题?
答案 0 :(得分:4)
你实际上可以通过两种方式做到这一点。
方法1 :
从外部应用程序更改轴心点。
在Maya等3D软件中创建一个简单的多维数据集,然后将枢轴点定位到多维数据集的底部,然后将其导出Unity。这应该是开箱即用的。
方法2 :
将多维数据集生成一个空的GameObject。
<强>步骤强>:
A 。创建一个空GameObject。
B 。将新GameObject移动到多维数据集的位置,然后将该新GameObject的y轴移动到多维数据集的底部。必须通过放大来精确定位y-pos。有关详细信息,请参阅下面的动画。
C 。现在将多维数据集拖动到新的GameObject,并且多维数据集应该是该新GameObject的子。您现在可以将问题中的脚本附加到新的 GameObject ,它应该只在一侧缩放多维数据集。不要忘记删除直接附加到多维数据集的旧缩放脚本。
图像教程。高质量版本here。
答案 1 :(得分:0)
您可以为此目的使用Slider。我正在设计一个加载栏,需要根据正在进行的下载来增加加载器的宽度。您可以禁用其句柄,并使用自定义Sprite加载填充百分比。您还可以将自定义Sprite用作背景。要使用Slider,请转到菜单栏-> GameObject-> UI-> Slider。或者相反,您可以从检查器中为所需的GmaeObject添加一个滑块组件(选择要添加滑块的GameObject->在检查器中,单击“添加组件-> 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
}
}
您也可以观看Brackeys视频,以获取有关设置“ https://www.youtube.com/watch?v=YMj2qPq9CP8”滑块的帮助。