您的位置:首页 > 移动开发 > Unity3D

Unity3d 面向对象设计思想(五)(游戏背包的处理ii)

2014-04-12 20:23 525 查看
续:

在Unity3d中,游戏中背包的处理个人的思想是,背包的每个格子都是可点击的对象,可把单个格子做成一个

prefabs,然后在游戏中添加,而每个格子都有逻辑判定,是否有道具在当前格子内,当前格子是否为空

我的做法不是动态生成对象,而是静态一个个手动加载背包对象,然后给每个背包命名。这样可以在当前背包格子

内加载了对象后将当前格子对象的名字分发出去



当前背包的ICOn只是一个已经调整好位置的空UISprite

a.定义一个对象组,存放所有的ICON对象

b.然后挨个加载当前背包需要显示的背景图片

    void SetIcon (int i) {
        if(obj[i]) 
            NGUITools.AddSprite(obj[i], atlax, "Orc Armor - Shoulders");

        if( !string.IsNullOrEmpty( obj[i].GetComponent<UISprite> ().spriteName) ) {
            NGUITools.Broadcast("OnDetailsResult", "rc"+i);
        } else {
            // reload
        }
    }

c.使用NGUI的工具类动态加载图片对象到ICON的UISprite上

d.然后广播事件出去做逻辑处理

    void OnDetailsResult (string rc) {
        BetterList<string> entrtys = new BetterList<string> ();

        if(!string.IsNullOrEmpty(rc)) {
            entrtys.Add(rc);
//            if(entrtys.size >0)
//                TiledController.index = entrtys.size;
        }

        TiledController.index ++;

        print("size" + entrtys.size);
    }

这样可以实现背包的加载,也是一个静态显示用的背包,可以添加显示道具

:)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  面向对象 设计
相关文章推荐