• Unity3d


    前期工程我们终于实现了技能列表的显示,嗯,终于可以看到角色的技能啦。但是依照现在的尿性,你不做出快捷栏的话,这些技能都是只能看的。为了更好的释放技能/使用物品,现在开始制作快捷栏。

    那么首先,我们必须持有一个快捷栏。

    一、建立快捷栏

    首先现建立一个Invisiable Wiedgt,命名为ShortCutUI,然后在内部建立6个UISprite,将图标定义为Grid,加上BoxCollider,这样我们初步的快捷栏就做好了。

    二、实现技能的拖动

    先明确一个概念,基于最优方案,一定是将技能的图标拖到快捷栏上。那么就会用到老朋友UIDragDropItem类,首先我们对技能图标建立脚步,并使其继承自UIDragDropItem类,并使其选中CloneOnDrop选项,然后通过其中的OnDragDropStart方法来管理克隆图标的父类(以实现自由拖动)以及OnDragDropRelease方法来实现拖动结束的过程。

    根据上述思路,脚本如下:

    Class SkillItemIcon : UIDragDropItem

    {

        private skillid;

        Override OnDragDropStart() //需要注意:通过对基类UIDragDropItem的分析,我们可以得知,此方法的作用对象是拖动对象的克隆,及我们的操作目标,具体见NGUI的代码

        {

            base.OnDargDropStart( );

            skillid = tranform.parent.GetCompnent<SkillItem>().id; //获取克隆父类(及技能的Prefabs)上的id

            tranfrom.parent = root.parent;

        }

        Override OnDragDropRelease(gameobject surface)

        {

            base.OnDargDropRelease(surface);

            if(surface.tag != null && surface.tag == Tag.shortcut)

            {

                surface.GetCompnent<ShortCutGrid>( ).SetSkill(skillId); //ShortCutGrid中的SetSkill方法后续进行构建,体现面向对象的思路——即构建一个模块,调用一个模块

            }

        }

    }

    以上就完成了今日的要求

  • 相关阅读:
    Android四大组件应用系列——使用BroadcastReceiver和Service实现倒计时
    IOS之UITabBarController
    Android之TelephonyManager
    Android四大组件应用系列——Activity与Service交互实现APK下载
    Android之PowerManager&BatteryManager
    ASP.NET MVC 下拉列表使用小结
    Module Zero之角色管理
    Module Zero之用户管理
    Module-Zero之版本管理
    Module-Zero之租户管理
  • 原文地址:https://www.cnblogs.com/yanbenxin/p/5904094.html
Copyright © 2020-2023  润新知