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

前期工程已经实现了角色的移动以及镜头的控制。现在开始处理场景中的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就会自动退出去了。

今日总结到此为止。

posted on   心醉的未来  阅读(761)  评论(0编辑  收藏  举报

努力加载评论中...

导航

点击右上角即可分享
微信分享提示