zoukankan      html  css  js  c++  java
  • unity之 利用NGUI的滑动条来动态更改摄像机与物体的距离

    终于弄出来了,现在想想以前的办法笨归笨,但是没有笨的,我也想不到这个方法,也许还有更好的,代码可能繁琐了,可以简化,但是思路没问题

    先上代码吧

    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值,然后每当拖动滑动条时,就获取新的值,与之前的旧的值相减,减完之后还要把新的之赋给旧的值,因为新的值马上就要变了,然后判断新的和旧的的大小,大了的话就增加没就是远了,小了的话就减少就是拉近了。

    上效果:

    初始状态:

    这是拉近了

    这是拉远了

    有什么更好的方法欢迎指教啊,多多益善!!!

  • 相关阅读:
    C#高级编程第11版
    做点字符串题
    Codeforces Round #681 (Div. 1, based on VK Cup 2019-2020
    Educational Codeforces Round 97 题解
    AtCoder Regular Contest 106 题解
    Kick Start Round G 2020 题解
    CCSP 2020题解
    Codeforces Round #675 (Div. 2) 题解
    AtCoder Regular Contest 104
    Kick Start Round F 2020 题解
  • 原文地址:https://www.cnblogs.com/SunBool/p/4769591.html
Copyright © 2011-2022 走看看