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必须转换一些测量值”?测量值意味着在某个水平面拾取某个物体后,叉子必须向上变换,这样驱动器才能正确地看到前视图