首页 > 编程语言 > 详细

Unity3d - RPG项目学习笔记(六)

时间:2016-08-23 14:49:37      阅读:203      评论:0      收藏:0      [点我收藏+]

前期工程已经实现了角色的移动以及镜头的控制。现在开始处理场景中的NPC以及任务UI。

一、NPC的创建

将工程中的NPC—长者模型拖动至场景内,并添加碰撞盒子,调整位置及大小。

二、任务UI的建立

2.1 任务背景的搭建

将工程素材的图片打包入工程文件的Atlas,然后在UIroot中创建背景即可。

2.2 接受/取消按钮的搭建

将Atlas中的按钮创建至背景即可,添加碰撞盒及按钮组件。

2.3 处理屏幕中的点击事件

当我们搭建完成上述内容后,发现点击UI界面,角色会向地面移动,需要对此BUG进行修复。

之前定义的移动逻辑为:鼠标按下→生产射线→生成碰撞点→角色转向→计算距离→角色移动→始终朝向目标点

我们必须在逻辑之初加入 鼠标按下 && 点击位置非UI

NGUI中的API  UICamera.hoveredObject 意义是UI界面的中任何物体

所以在前期的PlayerDirection脚本中,对Update的朝向条件需要更新为:

if( Input.GetMouseDown(0) && UICamera.hoveredObject == null ) 同时给背景加入碰撞器,这样就完成了点击事件。

2.4 处理UI的出现

我们并不能要求任务文本一上来就在屏幕显示,那么需要添加触发,以点击长者为触发条件。

首先为任务UI添加播放动画(飞入效果),为任务背景添加Tween→position,设定起点及止点,然后将tweener脚本隐藏掉。

为长者添加脚本如下:

public TweenPosition tweenposition;

void OnMouseOver( )

{

    ShowQuest( );

}

void ShowQuest()

{

    tweenposition.gameObject.SetActive(true);

    tweenposition.PlayForward( );

}

这样点击长者就可以出现任务界面了。

2.5 处理任务UI的关闭

为任务UI添加关闭按钮,然后对长者的脚本更新如下:

public void OnCloseButton( )

{

    HideQuest( );

}

void HideQuest( )

{

    tweenposition.PlayReverse();

}

这样的话任务UI就会自动退出去了。

今日总结到此为止。

Unity3d - RPG项目学习笔记(六)

原文:http://www.cnblogs.com/yanbenxin/p/5799125.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!