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

上效果:

初始状态:

这是拉近了

这是拉远了

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

时间: 2024-12-11 01:35:32

unity之 利用NGUI的滑动条来动态更改摄像机与物体的距离的相关文章

Unity3D学习(三):利用NGUI实现一个简单的左右摇杆

前言 小游戏Konster在测试的时候有热心玩家反馈左右移动手感不是很好,最主要的问题是:比如手指一旦按在手机屏幕的右方向按钮上,向左滑动到另一个左移按钮上是不会改变玩家移动方向. 具体如下图: 刚开始我按下了→按钮,小怪兽行走到一半的时候我将拇指滑动到了←按钮,但是小怪兽并没有向左移动,然后就继续向右直到撞上尖刺死亡. 原因就是:我写的脚本只监听了按钮的按下和抬起事件.对于拇指在按钮上的滑动没有做响应处理. 所以我决定重写一个JoyStick脚本来控制小怪兽的移动方向. 实现思路 参考了这篇博

Unity里名字牌、血条等头顶挂件的实现

Unity里实现人物头顶的名字牌.血条的实现,网上很多博客有提到过.这里结合自己在项目中的开发,简单总结几点. 宣雨松的热门博客里有提到过直接利用Unity自身的OnGUI()实现人物血条:http://www.xuanyusong.com/archives/1032 . 撇开血条进度条的更新,重点关注头顶物件位置的更新.简化之,实现人物头顶的名字牌的. 核心代码如下: using UnityEngine; using System.Collections; public class Follo

使用NGUI制作进度条(血条/蓝条)

制作血条和蓝条,原理都是一样的,下面创建一个可以复用的进度条. 第一步,搭建基本的UI显示界面,使用NGUI(没有插件的童鞋可以看我上一遍文章 )创建一个基本的进度条界面. 选中UIRoot,在Scene视图中,创建一个Sprite,重命名为NumberBar,为其选择图集和精灵,修改其大小到合适位置(256* 32).在其上右键,Attach一个Box Collider,然后再右键Attach一个Slider Script.我们会看到Slider组件会有些参数,我们会在稍后解释. 选中刚创建的

【学习中】Unity插件之NGUI 完整视频教程

课程 章节 内容 签到 Unity插件之NGUI 完整视频教程 第一章 NGUI基础控件和基础功能学习 1.NGUI介绍和插件的导入 6月29日 2.创建UIRoot 6月29日 3.学习Label控件,显示文字 6月29日 4.学习Sprite创建精灵,显示图片 5.学习Panel面板,控件容器 6.创建Button按钮,使用脚本监听按下 7.创建图集Atlas 8.切图SlicedSprite九宫切图 9.dynamicFont动态字体制作和显示 10.widget属性,pivot,dept

[Unity3D]Unity3D再叙NGUI之血条及技能冷却效果

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 喜欢我的博客请记住我的名字:秦元培,我的博客地址是blog.csdn.net/qinyuanpei. 转载请注明出处,本文作者:

滑动条 Trackbar[OpenCV 笔记9]

OpenCV中没有实现按钮的功能,我们可以利用滑动条来实现按钮功能. int createTrackerbar(const string& trackerbarname, const string winame, int* value, int count, TrackbarCallback onChange=0, void* userdata=0); trackbarname 轨迹条的名字. winname 窗口的名字,轨迹条会依附在这个窗口上. value 一个指向整型的指针,表示滑块的位置

疯狂JAVA讲义---第十二章:Swing编程(五)进度条和滑动条

http://blog.csdn.net/terryzero/article/details/3797782 疯狂JAVA讲义---第十二章:Swing编程(五)进度条和滑动条 标签: swing编程java任务timerstring 2009-01-16 21:12 6722人阅读 评论(0) 收藏 举报  分类: J2SE(63)  版权声明:本文为博主原创文章,未经博主允许不得转载. 前几天讲了Swing基本的控件,今天开始讲特殊控件.一天讲2个吧,首先讲用JProgressBar,Pro

手风琴效果和滑动条

由于本周开始编写 宝石迷阵这款益智游戏,其中涉及到的两个效果我觉得很有趣. 手风琴:点击一级餐单,二级菜单动态弹出:再次点击一级菜单,二级菜单缩回: 实现方法如下: 首先,用CSS和HTML规划9个框,其中第1.4.7个相对大一点,作为我们的一级餐单.其他尺寸小的就用来做二级餐单. 其次,再每个一级菜单中嵌入一个A标签,改标签引用一个能够让我们达到效果的函数. 以下是我的函数,有点搓,但是有效果 var clickno = 1;        //这个是标记变量,干嘛的呢,当标记为-1时,说第一

使用OpenCV滑动条写成的简单调色器,实时输出RGB值

好久没有写博客了,最近在看OpenCV,于是动手写了个简单的RGB调色器,在终端实时输出RGB的值.通过这个程序学习滑动条的使用.程序中主要用到cvCreateTrackbar ,其用法如下: cvCreateTrackbar 创建trackbar并将它添加到指定的窗口. CV_EXTERN_C_FUNCPTR( void (*CvTrackbarCallback)(int pos) ); int cvCreateTrackbar( const char* trackbar_name, cons