簡體   English   中英

如何根據Unity中NGUI Slider的值移動transform.y?

[英]How to move transform.y according to NGUI Slider value in Unity?

我正在制作一個游戲,必須用叉車撿起一些物體,我編寫此代碼來執行此操作,但無法正常工作。 拾取物體后未達到所需的位置...

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);
    }
}

僅當滑塊值為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);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM