Unity3D NGUI学习(一)血条】的更多相关文章

这次来讲讲Unity3D NGUI这个插件的学习,这个插件是收费的,不过去网上可以下载得很多可用版本.用来做用户的交互UI,学习起来比较简单 第一步,导入NGUI包 http://pan.baidu.com/s/1mhKaoha 导入后Unity工具栏上面就会出现关于NGUI的选择了 第二步,开始看一些例子,分析一些例子,因为一般学插件就是下载后照着别人的例子去做可以学会了. 来看一个例子 这里还看一个上面的进度条的 当这个按钮包含几个脚本之后,就达到这样的效果 之后就能够通过实现脚本控制这个进…
效果: 思路: 1.算出正确的uv去采样过滤图,上一篇文章说的很明白了.Shader实例:NGUI图集中的UISprite正确使用Shader的方法 2.用当前血量占总血量的百分比来设置shader中的变量,来控制血条的裁剪. 实际操作中,在shader中声明一个uniform float _Factor 然后在C#脚本中,对这个变量进行设置,结果发现,界面上不能实时响应这个值,进行正确的裁剪. 那么我只好牺牲color的一个分量,比如设置g分量,shader中用g分量的值来对血条进行裁剪.最终…
以下是 NGUI HUD Text 实现的: 基本原理: 1. 在角色头顶绑一个点 Pivot,用于对齐 2. 因为界面总是覆盖在人物头顶信息的上面,所以将 UIRoot 分为2个 Panel:1) GUI,用于画界面,Depth 较大 2) HUDPanel,用于画人物头顶文字及血条,Depth 较小 (1和2是最重要的) 3. 先使用 NGUI 实现一套管理人物头顶信息的类(或若干个类),名为 HUDText,他包含了各种功能(设置名字.名字颜色.血条等) 4. 将 HUDText 存为 P…
unity版本:4.6 NGUI版本:3.6. (转载请注明参考链接及作者) 参考链接:http://www.cnblogs.com/louissong/p/3841656.html,作者:博客园 LouisSong 很多情况下,我们需要做血量条来显示对象的血量,条状的血量条很容易,直接用NGUI里面的进度条就可以实现,但是有时候我们需要在一些地方做弧形的血量条,下面介绍弧形血量条的方法. 1.首先你需要一张弧形血量的图片,导入到NGUI的Altas中,NGUI图集Altas制作参考:http:…
NGUI 血条制作步骤 实现过程: 模拟血条的变化当点击按钮Button是血条会实时发生变化. 1.向Unity中导入NGUI2.6.3.unitypackage 点击create your ui 后 在panel中添加Button和Slider,结果如下: 此处的value是给Slider添加的子控件Label为了在血条上显示血量的当前值. value的设置如下 在Button上添加脚本UIButton Message设置如下…
首先要到Unity的Assets Store里面去下载一个扩展的Package叫NGUI HUD Text v1.13(81),注意如果没有安装NGUI就必须先安装NGUI插件,否则会用不了,因为HUD Text是依赖于NGUI插件的,作者是同一个. 3D角色血条实例 1.创建Unity项目工程和文件目录 2.导入模型资源(使用NGUI里面自带的ORC)和NGUI HUD Text v1.13的Package 3.把模型拖进场景中,调整画面,选中Main Camera---->GameObjec…
 刚好今天有朋友问我,比較典型的样例就是游戏里面人物的血条. 原理非常easy就是把3D点换算成2D的点.可是因为NGUI自身是3D所以我们须要先把NGUI下的点转成2D点.然后在把他转成3D的点. 听起来有点绕,不要紧我直接上代码. 对屏幕自适应不明确的看p=852" rel="bookmark">NGUI研究之怎样自适应屏幕 眼下我一直都是用NGUI来做人物血条,可是2D血条都会有个限制.就是它不能和模型有遮挡关系.只是血条能够依据人物的位置调节.比方远一点的人…
这几天用Unity3D做个射击小游戏,想做个人形的血条.百思不得其解,后来问了网上的牛牛们,攻克了,事实上挺简单的,GUI里面有个函数DrawTextureWithTexCoords就能够实现图片的裁剪.非常方便.裁剪之后.相信大家就都会操作了.话不多说.贴上代码与截图效果. using UnityEngine; using System.Collections; using   UnityEditor; public class drawTexture : MonoBehaviour { pu…
using UnityEngine; using System.Collections; public class NPC : MonoBehaviour { //主摄像机对象 private Camera camera; //NPC名称 private string name = "我是雨松MOMO"; //主角对象 GameObject hero; //NPC模型高度 float npcHeight; //红色血条贴图 public Texture2D blood_red; //黑…
用unity本身自带的功能,如何显示血条? 显示血条,从资源最小化的角度,只要把一个像素的色点放大成一个矩形就足够,三个不同颜色的矩形,分别显示前景色,背景色,填充色,这样会消耗最少的显存资源. unity 有GUITexture,可以用来显示色块.但GUITexture有个问题是,每个GUITexture都会消耗一个drawcall,如果画面上就数百个单位,就会消耗数百个drawcall,drawcall是昂贵的资源,一个手游也就只能允许200个左右的drawcall,显然这个方案只能用来做d…
http://www.cnblogs.com/chongxin/p/3876575.html Unity3D的uGUI听说最近4.6即将推出,但是目前NGUI等UI插件大行其道并且已经非常成熟,所以我们还是先看眼前吧. 一.实现思想 商城的功能是很多游戏都拥有的,按下一个界面按钮,弹出一个窗体. 然后是商城中的商品可以拖动,既可以用手,也可以用滑条等等,至于点击购买就不单单是UI层的事了.等到实现NDate的时候再进行讨论. 二.实现背景 1.NGUI->Open->Prefab tool b…
Unity3d ngui基础教程 NGUI教程:步骤1-Scene 1.创建一个新的场景(New Scene).2.选择并删除场景里的MainCamera.3.在NGUI菜单下选择Create a New UI,会打开UI创建向导. 4.在创建向导中你能更改UI的基本参数.现在我们选Default layer,点击Create Your UI 按钮.5.就这样,你的UI便创建好了. 注意: 如果在一个已存在NGUI的项目中你要跳过第二步,并且你要选择一个不同的UI层,你还要确保非GUI相机不渲染…
学习Unity已经10天了,也没发现有什么长进,真的急.昨天仿着官方Demo做了个射击游戏轮廓,其中需要给每个怪做一个血条. 搜了一些,挺复杂的,用NGUI或者UGUI,外加很长的代码...不过还是找到了一篇简单的. 但是那一篇把所有的东西都放一起了,不太好,我在这整理分离一下. 背景: 官方Demo恶魔射手.其中每个怪都有一个EnemyHealth脚本,该脚本主要有怪物的血量等,然后有个TakeDamage()函数来计算伤害后的血量. 开始: 1.制作图片: PS一张细长的红色图片作为血量:…
NGUI学习笔记汇总,适用于NGUI2.x,NGUI3.x 一.NGUI的直接用法 1. Attach a Collider:表示为NGUI的某些物体添加碰撞器,如果界面是用NGUI做的,只能这样添加.(注:用Component添加无效). 2. Attach an Anchor:表示为该物体添加了UIAnchor脚本,作用是避免像素偏移的问题 3. Attach UIStretch:表示为该物体添加了UIStretch脚本,提供缩放功能 4. Make Pixel Perfect:表示自动为你…
上次笔记实现了游戏商城的UI界面,没有实现动态数据绑定,所以是远远不够的.今天采用NData来做一个商城. 如果你之前没看过,可以参考上一篇博客   NGUI 学习笔记实战——制作商城UI界面  http://www.cnblogs.com/chongxin/p/3876575.html 一.NData介绍以及优点        大体来说NData就是一个NGUI 的 MVVM 框架插件,如果你问我什么是MVVM,我也只能说类似于MVC,至于什么是MVC………… 说道NData的优点,我们先来看…
原地址:http://blog.csdn.net/asd237241291/article/details/8126619 原创文章如需转载请注明:转载自 脱莫柔Unity3D学习之旅 本文链接地址:Unity3D NGUI自适应屏幕分辨率 1.UIRoot:根据高度自适应屏幕分辨率. NGUI根目录的UIRoot组件自带了根据高度自适应分辨率的功能. Scaling Style属性可选择三种不同的缩放策略. PixelPerfect 完美像素:直接显示设定好的像素.当屏幕高度低于minimum…
原创文章如需转载请注明:转载自 脱莫柔Unity3D学习之旅 QQ群:[119706192] 本文链接地址: Unity3D NGUI事件 UIEvents UIEvents-事件系统void OnHover (bool isOver):当鼠标移出或者悬停在某个碰撞器上的时候返回布尔值.在触摸设备上不会有作用.void OnPress (bool isDown):当鼠标或者触摸到碰撞器发生布尔值返回.void OnSelect (bool selected):当鼠标或者触摸从OnPress发生后…
UI3D转2D平面显示UI3DTo2D血条显示: using UnityEngine; using System.Collections; public class UI3DTo2D : MonoBehaviour { private GameObject _TargetEnemyObj;                //目标物体 private Camera worldcamera;                        //世界相机 private Camera guiCamera…
声明:本文是自己做的项目,可能不是最好的方法,或有错误使用方式.各位不喜勿喷! HP进度 HP背景 将上面的资源拖到UE4中(使用UE4自带的颜色也可实现效果,具体参考官方教程 https://docs.unrealengine.com/latest/CHN/Engine/UMG/QuickStart/2/index.html) 网上相关教程:https://answers.unrealengine.com/questions/79728/how-to-make-a-progress-bar-i…
首先做一个血条,创建一个名为Follow3DObject的脚本添加到血条控件上. Follow3DObject.cs的代码如下: using UnityEngine; using System.Collections; public class Follow3DObject : MonoBehaviour { public Transform target; , , ); // Use this for initialization void Start() { } // Update is c…
每个从事C++开发的朋友相信都能给后来者一些建议,但是真正为此进行大致总结的很少.本文就给出了网上流传的对C++编程开发学习的50条建议,总结的还是相当不错的,编程学习者(不仅限于C++学习者)如果真的理解了这些建议,相信能够在学习时准确的抓住侧重点,少走弯路.下面列出这50条建议: 1.把C++当成一门新的语言学习(和C没啥关系!). 2.看<Thinking In C++>,不要看<C++编程思想>. 3.看<The C++ Programming Language>…
using UnityEngine; using System.Collections; using UnityEngine.UI; public class HealthController : MonoBehaviour { //当前对象是血条还是蓝条 public bool isHealth = false; //虚拟轴,横轴,纵轴 private float hor,ver; //血条的最大宽度 ; //蓝条的最大宽度 ; //当前的虚拟轴 private float currentAx…
依据 Unity插件之NGUI学习(2),创建一个UI Root,在UI Root下创建一个Texture作为背景图,并设置图片,在Wiget下调整大小:然后在UI Root下再创建一个Panel. 在Hierarchy窗体选中Panel,然后选择菜单Component->NGUI->Interaction->Table,查看Inspector窗体,在Panel的属性中添加了UITable. Columns 表示每行有几个元素 Direction 表示超过每列的元素后加入元素的方向 So…
我们可以看到像英雄联盟等游戏里英雄头顶的血条显示并非是纯色的,而是根据血量的多少而显示一定量的格子,这种方式明显是比较友好.比较美观的,事实上我们的游戏里面也想实现这样的效果,那该怎么办呢?根据血量的多少同时创建N多个小格子图片?这明显不合理:根据血量多少同时创建N多个分割线来拆分图片?这也不合理. 所以我今天将以一种很简单的方式实现这种效果,当然没什么难度,只对UGUI的Slider做一些修改就可以了. 一.首先,我们创建一个Slider,删除他的Handle,勾选Whole Numbers(…
组件设计 创建一个进度条组件,作为血条. bar是实际血量条 DownBar是扣血缓动背景图层 UpBar是加血缓动背景图层 LowBar是低血量变色(和控制器配合,本文不讲) n11组合是血量参考线 发布到Unity. 参考代码 if (_lastHP < hpBar.value) // HP降低 { hpBar.UpBar.visible = false; // 隐藏加血层 hpBar.value = _lastHP; // 设置当前血量 hpBar.DownBar.TweenScaleX(…
定义常量 public class Content { //当前UI分辨率 public const float UI_Width = 1366f; public const float UI_Height = 768f; //手机屏幕大小的二分之一 ; ; //手机屏幕与UI的比率 public static float screen_width_ratio = UI_Width / Screen.width; public static float screen_height_ratio =…
using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI; public class HealthBar : MonoBehaviour { public float HealthPoint { get { return m_Slider.value; } set { m_Slider.value = value; } } public float MaxHea…
通常游戏中的角色都有所谓的生命值,而且头顶上会有一个血条显示.生命值无非就是一个属性而已,很容易在Player.py类中增加,头顶上的血条其实就是绘制二个矩形,叠加在一起. 以上节的Player.py为例: import pygame # 主角 class Player(object): def __init__(self, x, y, width, height, img_base_path): self.x = x self.y = y self.width = width self.hei…
用Slider来控制Cube旋转 Slider是滑动条.…
using UnityEngine; using System.Collections; public class xt : MonoBehaviour { //红色血条 public Texture2D blood_red; //黑色血条 public Texture2D blood_black; //当前生命值 ; void OnGUI() { if (GUILayout.RepeatButton("加血")) { //增加生命值 ) { HP++; } } if (GUILayo…