仅在一侧缩放游戏对象
Scale gameobject on just one side
我已将立方体添加到场景中并缩放并放置到位置 ( 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;
}
}
但立方体在两侧缩放,顶部和底部。我想用相同的系数缩放,但立方体的底部保持在相同的位置。
我试图在 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
但是动作太大了
如何解决这个问题?
您实际上可以通过两种方式做到这一点。
方法一:
从外部应用程序更改枢轴点。
在Maya等3D软件中创建一个简单的立方体,然后将轴心点定位到立方体的底部,然后将其导出到Unity。这应该开箱即用。
方法 2:
将立方体作为空游戏对象的父级。
步骤:
A。创建一个空的游戏对象。
B。将新游戏对象移动到立方体的位置,然后将新游戏对象的 y 轴移动到立方体的底部。必须通过放大来精确定位 y 坐标。有关详细信息,请参见下面的动画。
C。现在将 Cube 拖到那个新的 GameObject,立方体应该是 child 那个新的游戏对象。您现在可以将问题中的脚本附加到那个新的 GameObject 并且它应该只在一侧缩放立方体。不要忘记删除直接附加到多维数据集的旧缩放脚本。
图像教程。高质量版本 here.
您可以使用 Slider 来达到目的。我正在设计一个加载栏,我需要根据正在进行的下载增加加载器的宽度。您可以禁用它的句柄,并使用自定义 Sprite 来加载填充百分比。您还可以使用自定义 Sprite 作为背景。要使用 Slider,请转到菜单栏 -> GameObject -> UI -> Slider。或者您可以从检查器中为您想要的 GmaeObject 添加一个滑块组件(Select 您要添加滑块的游戏对象 -> 在检查器中单击添加组件 -> 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”的一些帮助。
我已将立方体添加到场景中并缩放并放置到位置 ( 0, 0, 0 )。 我正在使用附加到 Cube
的代码缩放该 CubeIEnumerator 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;
}
}
但立方体在两侧缩放,顶部和底部。我想用相同的系数缩放,但立方体的底部保持在相同的位置。
我试图在 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
但是动作太大了
如何解决这个问题?
您实际上可以通过两种方式做到这一点。
方法一:
从外部应用程序更改枢轴点。
在Maya等3D软件中创建一个简单的立方体,然后将轴心点定位到立方体的底部,然后将其导出到Unity。这应该开箱即用。
方法 2:
将立方体作为空游戏对象的父级。
步骤:
A。创建一个空的游戏对象。
B。将新游戏对象移动到立方体的位置,然后将新游戏对象的 y 轴移动到立方体的底部。必须通过放大来精确定位 y 坐标。有关详细信息,请参见下面的动画。
C。现在将 Cube 拖到那个新的 GameObject,立方体应该是 child 那个新的游戏对象。您现在可以将问题中的脚本附加到那个新的 GameObject 并且它应该只在一侧缩放立方体。不要忘记删除直接附加到多维数据集的旧缩放脚本。
图像教程。高质量版本 here.
您可以使用 Slider 来达到目的。我正在设计一个加载栏,我需要根据正在进行的下载增加加载器的宽度。您可以禁用它的句柄,并使用自定义 Sprite 来加载填充百分比。您还可以使用自定义 Sprite 作为背景。要使用 Slider,请转到菜单栏 -> GameObject -> UI -> Slider。或者您可以从检查器中为您想要的 GmaeObject 添加一个滑块组件(Select 您要添加滑块的游戏对象 -> 在检查器中单击添加组件 -> 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”的一些帮助。