募集要項

  • ■ボイスの募集は終了しました。

    非常に沢山のご応募ありがとうございました!

     結果はこちら
2017年4月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            

« 【Unity Tips】 Excelからの入出力テスト その4(完 | トップページ | 【Unity Action】 もう4月。 »

2013年3月29日 (金)

【Unity Tips】 NGUIのスプライトサイズ参照とInventorySystemのID指定

黙々と装備画面の実装中。
特に書くことも無いので、今日の引っかかった点メモ。

■NGUIのスプライトサイズの参照

 NGUI付属のAtlasMakerを使用して複数の画像をまとめた場合、
 サイズが最適化(無駄な領域がカット)されて保存されるため、
 
 UISpriteオブジェクト.spriteName = アイコン名;

 で切り替えるだけだと、元の指定のサイズのままになり、縦横比が崩れます。
 そこで、元の画像のX,Yの幅を取得して変更する必要がありました。
 求め方は以下。

 float height = 使用アトラス.GetSprite(スプライト名).outer.height;
 float width  = 使用アトラス.GetSprite(スプライト名).outer.width;

 で、スプライトのオブジェクトに対して

 transform.localScale = new Vector3 (width,height,1);

 としてアイコンの名前と同時にサイズを変更してあげればOK。
 倍率が必要な場合はかけましょう。

■InventorySystemのアイテムのID指定

 アイテムの管理をエクセルメインで行うようになった為、
 それに合わせてInventorySystemの管理回りを変更。

 具体的には、
 InvDatabase.list[リスト番号].items[アイテムの配列番号];
 で出していた物を、アイテムの追加等で可変し易い配列の番号ではなく、
 固定のアイテムIDで読むように。(1010とか)

 InvDatabase.FindByID(アイテムのID)

 で求められました。思ったより簡単。NGUI有難う!
 複数InvDatabaseがある場合はIDの重複に注意ですね。
 (※通常では表に出てないので大丈夫だと思いますが・・・)
 

« 【Unity Tips】 Excelからの入出力テスト その4(完 | トップページ | 【Unity Action】 もう4月。 »

Unity Tips」カテゴリの記事

コメント

>NGUI付属のAtlasMakerを使用して複数の画像をまとめた場合、
>サイズが最適化(無駄な領域がカット)されて保存されるため、

これですが、AlasMakerのTrimAlphaのチェックを外してCreateすると、
元のサイズのままパックされると思います。

見当違いのようでしたらごめんなさい。

West Hillさん、コメントありがとうございます。

TrimAlpha・・・確かにそうですね( ; ゚Д゚)
普通に見過ごしてましたw

とりあえず今回は無駄な領域(Alphaの領域)はカットして、
反映時にスプライトサイズ調整した方がメモリ的にはやさしいので、
現状の形のまま進めようかと思いますが、

別途元の画像のまま使いたいシチュエーションがあった場合に
使用しようと思います。

情報ありがとうございました(´▽`)

ちょうど悩んでいました。ありがとうございました!

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1500357/51001425

この記事へのトラックバック一覧です: 【Unity Tips】 NGUIのスプライトサイズ参照とInventorySystemのID指定:

« 【Unity Tips】 Excelからの入出力テスト その4(完 | トップページ | 【Unity Action】 もう4月。 »

Twitter等

  • にほんブログ村 ゲームブログ ゲーム制作へ

メールフォーム

  • 直接コンタクト取りたい方はこちらからどうぞ

サイト内検索
ココログ最強検索 by 暴想