[英]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.