C# 如何根据单位中的NGUI滑块值移动transform.y?
我正在做一个游戏,我必须选择一些物体与叉升降机我写了这段代码来做到这一点,但它不是正常工作。拾取对象后未到达所需点C# 如何根据单位中的NGUI滑块值移动transform.y?,c#,unity3d,C#,Unity3d,我正在做一个游戏,我必须选择一些物体与叉升降机我写了这段代码来做到这一点,但它不是正常工作。拾取对象后未到达所需点 public UISlider Slider; public GameObject Lifter; public float temp; // Use this for initialization void Start () { } // Update is called once per frame void Update () { temp = Slider.
public UISlider Slider;
public GameObject Lifter;
public float temp;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
temp = Slider.GetComponent<UISlider> ().value;
if (Slider.GetComponent<UISlider> ().value == 0) {
Lifter.transform.position = new Vector3 (Lifter.transform.position.x, transform.position.y + temp - 1.2f, Lifter.transform.position.z);
}
else
{
Lifter.transform.position = new Vector3 (Lifter.transform.position.x, 0.39, Lifter.transform.position.z);
}
}
公共UISlider滑块;
公共游戏物体升降机;
公众浮标温度;
//用于初始化
无效开始(){
}
//每帧调用一次更新
无效更新(){
temp=Slider.GetComponent().value;
if(Slider.GetComponent().value==0){
升降器变换位置=新矢量3(升降器变换位置x,变换位置y+温度-1.2f,升降器变换位置z);
}
其他的
{
升降器变换位置=新矢量3(升降器变换位置x,0.39,升降器变换位置z);
}
}
仅当滑块值为0时才使用滑块值,这是不正确的。尝试使用此代码-
public Slider MySlider;
public GameObject Lifter;
public float temp;
private float LifterInitialY = 0f;
// Use this for initialization
void Start () {
LifterInitialY = Lifter.transform.position.y;
}
// Update is called once per frame
void Update () {
Lifter.transform.position = new Vector3 (Lifter.transform.position.x, LifterInitialY + MySlider.value , Lifter.transform.position.z);
}
编辑:在滑块值变为1时向上移动叉(Y轴)-
为测量值添加一个变量-
...
private float LifterInitialY = 0f;
private float someMeasuredValue = 0f;
...
并在Update
方法中添加滑块值检查-
void Update () {
if(MySlider.value >= 1f){
someMeasuredValue = 1.2f; // measure some value
}else{
someMeasuredValue = 0f;
}
Lifter.transform.position = new Vector3 (Lifter.transform.position.x, LifterInitialY + MySlider.value + someMeasuredValue , Lifter.transform.position.z);
}
代码工作正常,但不正常,因为当滑块的值为1时,fork必须转换一些测量值。如果(MySlider.value==1f){//do something},您可以添加滑块值1的检查,如
。您能否详细说明“fork必须转换一些测量值”?测量值意味着在某个水平面拾取某个物体后,叉子必须向上变换,这样驱动器才能正确地看到前视图