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

    上效果:

    初始状态:

    这是拉近了

    这是拉远了

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

  • 相关阅读:
    XML学习教程
    JSON 的含义?
    局域网共享问题全方位解决
    VMware虚拟化培训手册
    信息化建设中的IT规划精要
    洛谷1265 公路修建
    洛谷1144 最短路计数
    NOI题库05 派
    NOI题库7624 山区建小学(162:Post Office / IOI2000 POST OFFICE [input] )
    vijosP1014 旅行商简化版
  • 原文地址:https://www.cnblogs.com/SunBool/p/4769591.html
Copyright © 2011-2022 走看看