终于弄出来了,现在想想以前的办法笨归笨,但是没有笨的,我也想不到这个方法,也许还有更好的,代码可能繁琐了,可以简化,但是思路没问题
先上代码吧
public GameObject cube; public GameObject bar; float oldValue; void Start() { oldValue = bar.GetComponent<UISlider>().value; } public void ChangeValue() { float newValue = bar.GetComponent<UISlider>().value; if(newValue>oldValue) { transform.position += (newValue - oldValue) * (transform.position - cube.transform.position); } if(newValue<oldValue) { transform.position -= (oldValue - newValue) * (transform.position - cube.transform.position); } oldValue = newValue; } void Update() { transform.LookAt(cube.transform); }
解释:首先先获取滑动条的value值,然后每当拖动滑动条时,就获取新的值,与之前的旧的值相减,减完之后还要把新的之赋给旧的值,因为新的值马上就要变了,然后判断新的和旧的的大小,大了的话就增加没就是远了,小了的话就减少就是拉近了。
上效果:
初始状态:
这是拉近了
这是拉远了
有什么更好的方法欢迎指教啊,多多益善!!!