u3d为什么用 questu3d dotween抛物线.playreverse为什么还是在屏幕内

【代码片-1】 RPG黑暗之光(4)添加第一个NPC、NGUI实现任务发布
标签:ngui&&&&任务&&&&系统&&&&&&&&
using UnityE
using System.C
public class BarNPC : MonoBehaviour {
public TweenPosition questT
public bool isInTask =
public int killCount = 0;
public UILabel desL
public GameObject acceptB
public GameObject okB
public GameObject cancelB
private PlayerS
// Use this for initialization
void Start () {
status = GameObject.FindGameObjectWithTag(Tags.player).GetComponent&PlayerStatus&();
// Update is called once per frame
void Update () {
void OnTriggerEnter(Collider isPlayer)
if (isPlayer.tag == Tags.player)
ShowQuest();
if (isInTask)
ShowTaskProgress();
ShowTaskDes();
void ShowQuest()
questTween.gameObject.SetActive(true);
questTween.PlayForward();
public void OnCloseButtonClick()
HideQuest();
void HideQuest()
questTween.PlayReverse();
public void OnAcceptButtonClick()
isInTask =
ShowTaskProgress();
public void OnOkButtonClick()
if (killCount &= 10)
status.GetCoint(1000);
killCount = 0;
HideQuest();
//任务完成
isInTask =
//没有完成任务
HideQuest();
public void OnCancelButtonClick()
isInTask =
HideQuest();
void ShowTaskDes()
desLabel.text = &任务:\n杀死10只小野狼\n\n奖励:\n1000金币&;
acceptBtn.SetActive(true);
cancelBtn.SetActive(true);
okBtn.SetActive(false);
void ShowTaskProgress()
desLabel.text = &任务:\n你已经杀死了& + killCount + &/10只小野狼\n\n奖励:\n1000金币&;
acceptBtn.SetActive(false);
cancelBtn.SetActive(false);
okBtn.SetActive(true);
我要留言技术领域:
取消收藏确定要取消收藏吗?
删除图谱提示你保存在该图谱下的知识内容也会被删除,建议你先将内容移到其他图谱中。你确定要删除知识图谱及其内容吗?
删除节点提示无法删除该知识节点,因该节点下仍保存有相关知识内容!
删除节点提示你确定要删除该知识节点吗?1460人阅读
虚拟现实技术(29)
【Unity3D实战】RPG黑暗之光:游戏分解及各系统的实现
一、任务系统:
1、添加接任务的老爷爷:
Model中选择并添加老爷爷,调整方向,并添加一个Box collider组件。
2、设计任务UI界面:
UI Root添加一个Sprite(命名为Quest),选择Altas图集里的Quest对话框,添加Tween Position动画效果为从右进入。
3、设计任务内容:
选择Quest,添加一个Lable--&Child,设置字体、字号,字的内容。
添加Accept和Cancel按钮:选择Quest,添加Sprit--&Child,Attach--&Box Collider,Attach--&Button Script,同上面添加Button操作一样。
在点击UI界面时,主角不能移动的处理:在人物移动脚本里面加上一个条件,UICamera.hoveredObject == null,鼠标在UI界面上,这个条件不成立,就不能移动。
添加一个Close按钮:同上。
4、处理任务系统对话框的显示和隐藏:
给老爷爷添加一个脚本,NPCBar.cs
public TweenPosition questT//把UI Quest拽给此变量
void OnMouseOver() {//当鼠标位于这个collider之上的时候,会在每一帧调用这个方法
& & if (Input.GetMouseButtonDown(0)) {//当点击了老爷爷
& & & & ShowQuest();
void ShowQuest() {
& & questTween.gameObject.SetActive(true);
& & questTween.PlayForward();
void HideQuest() {
& & questTween.PlayReverse();
//任务系统:任务对话框上的按钮点击事件的处理,把这个事件注册到Close按钮上。
public void OnCloseButtonClick() {
& & HideQuest();
注册OnCloseButtonClick事件到Close按钮上:把Bar_NPC拖到Close按钮的On Click--&Notify上,并选择对应Method为OnCloseButtonClick
二、功能面板(右下角):
三、信息管理系统:
物品信息:即创建一个Text文本文件存放物品即信息。
角色信息:等级、物品、经验值、装备、技能等要存储读取。
四、背包系统:
五、状态系统(主角状态信息):
六、装备系统:
七、技能系统:
八、主角头像和HP/MP显示(左上角):
九、小地图(右上角);
十、药店商人及药品系统:
十一、武器商人及武器系统:
十二、敌人系统:
小狼、中狼、大狼;
敌人自动孵化;
敌人AI以及自动寻路;
战斗时的特效;
敌人动画系统;
杀敌之后物品拾取;
十三、等级系统:
杀敌之后增加经验;
升级之后状态更新;
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:81018次
积分:1329
积分:1329
排名:千里之外
原创:52篇
评论:10条
(3)(14)(14)(1)(1)(7)(9)(5)求教,怎样让TweenPosition动画播放后,才执行下一条语句【unity3d吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:74,066贴子:
求教,怎样让TweenPosition动画播放后,才执行下一条语句收藏
大家好,是这样,我遇到一个问题,有个Quest的UI,我使用TweenPosition来实现飞入、飞出的动画public TweenPosition questT void HideQuest() {
questTween.PlayReverse();//本意是这样,之前触发了飞入镜头的Quest停留在视野中,在其他按钮调用这个函数后,Quest这个UI能飞出视野后,再用下一句使其隐藏。
questTween.gameObject.SetActive(false);
}但是实际过程中效果是,直接原地就隐藏了。也就是没能等到动画播放完成,没能等到UI飞出去动画播放结束 就执行了questTween.gameObject.SetActive(false);所以求教,怎么实现啊?求教了
使他的坐标超出某个范围就影藏
NGUI有那个动画播放完的一个函数,你找一下,和Button差不都,直接拖进去一个物体,调身上的脚本的方法。
TweenPosition有Finish的回调的,你可以加到结束回调里,也可以用协程(Invoke也可以),等它的duration时间再隐藏
我一般是加Invoke 但应该有更好的办法
登录百度帐号推荐应用My First RPG Game总结二_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
My First RPG Game总结二
上传于|0|0|文档简介
&&My First RPG Game总结二
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩7页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢1557人阅读
Unity3D基础(217)
转载自:/g__dragon/article/details/
利用NGUI自带的脚本控件实现按钮点击窗口滑动出现与隐藏。
首先建立如下图的三个BUtton与三个Panel
然后在每个Button上添加UIPlayTween脚本,在Interaction中。将Panel1拖到Button1的TweenTarget上,如图。以此类推,注意TweenGroup应该不同,一个Button与一个Panel要对应在一个Group下,Play direction设置为Toggle,这样可以重复移动。
再将TweenPosition脚本添加到每个Panel上,脚本在Tween中。
设置起始,终止位置
将Panel移到窗口以外,记录窗口起始位置,将Position的XYZ记录到TweenPosition的From下的XYZ,
再将panel拖到窗口内,将窗口结束位置记录到TweenPosition的To位置。意思很简单。设置物体的起始位置与终止位置
注意,这里也要将对应的TweenGroup更改下,一个Button和一个Panel的Group要一样。
这时运行会发现panel会自己动起来,把TweenPosition的脚本禁用(就是把前面的对钩勾掉),如图。
运行,你会发现,点击Button1,Panel从窗口外滑动进来,再次点击,窗口又会滑动出去。这就是Direction设置为Toggle的作用,简单的UIpalyTween的用法实现了。
点击按钮让上次显示的窗体返回,本次显示的窗体前进
方法如下:
//点击建立新窗体,关闭上次打开的窗体
&&& void fnChangePanel(GameObject obj)
&&&&&&& if (_BtnLast != obj&&_BtnLast!=null)
&&&&&&&&&&& _BtnLast.GetComponent&UIPlayTween&().Play(false);//设置上一次保存的向前移动的窗体向后运动
&&&&&&&&&&&&
&&&&&&& _BtnLast =
此方法需要在Button上的UIPlayTween脚本上更改Play direction属性为Forward,不能是Toggle了,否则会有逻辑问题。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:802974次
积分:13003
积分:13003
排名:第1004名
原创:435篇
转载:480篇
评论:85条
(1)(6)(2)(4)(3)(12)(4)(4)(3)(26)(12)(6)(14)(5)(1)(14)(18)(26)(37)(24)(29)(19)(9)(14)(17)(54)(20)(53)(127)(93)(49)(31)(44)(28)(56)(21)(5)(9)(12)(3)(1)

我要回帖

更多关于 ngui play tween 的文章

 

随机推荐