FC2ブログ
    10 «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.» 12

    ハルシオンシステムの気ままBlog

    株式会社ハルシオンシステムのメンバーが送る、UnityやらJavaやらの技術的話題から、自社開発のアプリの宣伝とかとかのブログです。ほんと気ままにいきたいと思います。更新日は毎週 月 木でっす!

     

    【Unity】NGUIの基本操作その6 

    はい。( ノ゚Д゚)こんにちは。大坂です。
    あ、メンバーが二人になったので、ブログの更新が月曜と木曜の2回になりました!
    今後もよろしくお願いしまっす!

    では早速。
    私もUnityで開発を始めたので、ちょいちょい記事にしていきたいと思います。
    NGUIも使用してみたのでNGUIについて書いてみたいと思います。
    タイトルは一応引き継いでみました。今後続けていければいいかなぁ。。

    今回はNGUIで作成したボタンを押した時にスクリプトの処理を実行させる方法についてです。

    まずは画像のとおりボタンを2個準備して、ButtonMessageをコンポーネントに追加します。
    ボタンの作成方法はこちらの記事を参考にどうぞ。



    次にボタンに処理させたい処理を記述したスクリプトを作成します。
    今回は適当に以下のようなスクリプトを作成しました。
    ボタンを押すとログを出すだけですね。



    作成したスクリプトをコンポーネントに追加したオブジェクトを作成。
    作成したオブジェクトを「UIButton Message」の「Target」にアタッチし、「Function Name」にスクリプトに記述した実行したいメソッド名を記述します。



    省略しますがボタン2にも同様にオブジェクトをアタッチし、「Function Name」にメソッド名を追加します。
    ボタン2のメソッド名は「Button2_Click」としています。

    あとは実行してボタンをしてみるとログが出ます。
    一応結果の画像も。



    こんな感じで簡単にボタンを押した時に実行する処理を追加できます!
    ほかにもいろいろな方法があると思いますが、こんな感じで作成すればボタン処理を記述するスクリプトをまとめられますね!開発も少しは楽になるんじゃないでしょうか??

    ではでは、また来週(´・ω・)ノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    【Unity】Unity4.3でましたね!ちょっといじってみました 

    こんにちわ!坂内っす!
    ようやく落ち着きました。

    色々事情がありまして、毎週水曜日にブログかいていた秋山が戦線離脱。
    これからは、二人でやっていきたいと思います!

    皆様これからもよろしくお願いします!!

    で、今日はUnity4.3で2Dがネイティブで対応されたということで、少し触ってみました!

    2D大好きです。3D難しいから・・orz

    で!で!

    早速2DでUnity開始です!
    あ、次のゲームはまたOrthelloで行きたいと思いますが、ネイティブでもいいのかなーとも思ってます!

    まずはProjectを作るところ。



    で、プロジェクトを作って、適当に絵を作ってみます。



    こんな絵。今回はブロック崩しのつもり!

    で、これをProjectにいれます。



    そうすると!あたらしいInspectorががががっ!
    Texture Typeを「Sprite」に、Sprite Modeを「Multiple」にして、Sprite Editorをクリック!



    ここでは、絵に合わせて個別のスプライトを設定します。
    今回はブロックを指定するため、それぞれの色のブロックを四角で囲んでスプライトを設定しました。
    (丸いボールも)
    そしてApply!!!

    で、HierarchyにてSpriteを作成!!


    そして、作成されたSpriteのInspectorからSpriteを選ぶと、先ほど分割したSpriteが選択できます!



    こんな感じでSpriteを置きまくりで、各スプライトにはPhysics2Dの「Box Collider 2D」をつければ出来上がり!

    こんな感じで2Dはできそうっす!
    (まだボール動かしてませんが・・・)

    あとは普段のようにボールの動き等をすれば完成!?

    う~ん 意外と簡単にできそうな感じですねー

    ちなみにこの状態でDrawCallは3でした。

    う~ん まじで 悩む。次回作はOrthelloでやっていこうと思ってますが、こっちのが最終的に軽くなるならネイティブって選択しもありっすよね~

    以上!

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    ちょっとバタバタしとります! 

    こんにちわ!坂内です。

    今週は事務所の移転(?)やらでちょっとバタバタしておりまして、来週からブログ再開予定です!

    今後ともよろしくお願いします!

    Category: その他日記

    tb 0 : cm 0   

    【Unity】Unity&Orthelloによる2Dゲーム作成⑦ 

    はい、こんにちわ坂内でっす。

    Unity難しいでっす。
    土曜出社してAndroidゲーム【モンスラ】バージョンアップしたでっす。

    今回の目玉は必殺技の追加、クリティカルヒット追加、フェアリー追加でしたが、実は軽くなってるんです!

    Drawcallが劇的に減ってるんですよ!

    Ver1.1まではフルメンバー(村人200人+ユニット199人x6クラス)の場合、Drawcallが200ほど。
    重いです!これ重いんですよ!

    Ver1.1までは各クラスごとにAtlasを用意し、合計7Atlasを使用していました。
    Ver2では少しでも軽くしようと、GUIまわりのAtlasを一つにしたり、ユニットのAtlasをつにまとめたりしたところ、なんとDrawCall30!!!

    この劇的変化!! DrawCall 200 ⇒ 30!!

    ただし、スマホだとさすがにSpriteの多さが問題か、重いんです!
    DrawCallの問題だけじゃあぁないっすね!!
    今後軽くする方法を検討してみますが、ちょっとこれ以上はきついかな?
    タップ時の攻撃エフェクトを他のAtlasと1つにしてみようという案は考えてますが・・
    あと、Unity4.3によって2Dゲームまわりにどのような変化がくるか楽しみですね!!

    と、いうことで今後もモンスラよろしくお願いします!

    Category: 開発日記(Unity)

    Tag: Android  ゲーム  2Dゲーム  Sprite  Unity 
    tb 0 : cm 0   

    【モンスラ】モンスラのバージョンが2.0になりました! 

    https://play.google.com/store/apps/details?id=com.halcyon.Monsla
    Androidゲーム【モンスラ】が本日バージョンアップしました!!

    追加要素は以下です。
    ①バーストドライブ(必殺技)追加
    ②クリティカルヒット 追加
    ③フェアリー 追加
     (遊んでいるとフェアリーがでてくるので、タップしてみよう!お金が増えたり、パーティが強化されるぞ!)


    是非遊んでみてください!
    Ver2.1も企画しています。

    今後もよろしくお願い致します!

    大切だからもう一度書いておきます。
    https://play.google.com/store/apps/details?id=com.halcyon.Monsla

    Category: Androidアプリ紹介

    Thread: みんなに紹介したいこと

    Janre: ブログ

    tb 0 : cm 0   

    【Java】SQLiteでDBを操作してみる その3 

    こんにちは~
    大坂です。

    今週もSQLiteのお話です。
    テーブル作成、セレクトのお話が終わったので、Insert、Delete、Updateについて。


    public class TestActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    LinearLayout layout = new LinearLayout(this);
    layout.setOrientation(LinearLayout.VERTICAL);
    setContentView(layout);

    // 先々週書いた記事のDBHelper
    TestDatabaseHelper helper = new TestDatabaseHelper(this);
    SQLiteDatabase db = helper.getReadableDatabase();

    // Insert(戻り値はインサートした行のID)
    ContentValues insert_values = new ContentValues();
    values.put("name","ハルシオン ジロウ");
    values.put("sex","男");
    values.put("age","5");
    long id = db.insert("test_table", null, insert_values);

    // Update
    ContentValues update_values = new ContentValues();
    values.put("age", 10);
    db.update("test_table", update_values, "name = 'ハルシオン ジロウ'", null);

    // Delete
    db.delete("person_table", "name = 'ハルシオン ジロウ'", null);

    }
    }

    それぞれの引数について
    Insert
    第一引数:テーブル名
    第二引数:NotNull属性のカラムにデータを入れるときに値が指定されていない場合、代わりとなる値を指定
    第三引数:列名と値がマッピングされたContentValuesインスタンス

    Update
    第一引数:テーブル名
    第二引数:Where条件
    第三引数:Where条件を「?」とした場合のパラメータ(String[])
    例:
    db.update("test_table", update_values, "name = ?", new String[]{"ハルシオン ジロウ"});

    Delete
    第一引数:テーブル名
    第二引数:Where条件
    第三引数:Where条件を「?」とした場合のパラメータ(String[])

    以上でござる。
    今週も手抜きでござる。

    ではでは、また来週(´・ω・)ノシ

    Category: 開発日記(Java)

    tb 0 : cm 0   

    【Unity】Unity&Orthelloによる2Dゲーム作成⑥ 

    こんにちわ。坂内です。

    モンスラすこーーーーしずつ増えてきましたが、、、ほんとすこーしずつ過ぎです!
    ちょっと皆さんダウンロードお願いします!!

    で、今日はモンスラで現在頭を悩ませている件を一つ。
    え?いろいろ問題はあるだろうって?
    あるんですけど、今回はUnityでの作りの話をしようかと。

    キャラをいっぱい画面に出すのでDrawCallがすっごい多い = 重い?
    Batchingをしたとしても、キャラが攻撃時に動く等が制限にひっかかり、Batchingも
    効いてない状況。

    この重さどうやって回避すればいいのだろうか・・・と毎日悩んでおります。
    やばいっす!やばいっす!
    これ皆さんどう対処しているんだろうか?

    偉い人軽くする方法おせーーーてーーーー!!!

    【Unity4.3について】
    Unity4.3がそろそろ公開って話もありますゆえ、4.3になるとOrthelloを使用しなくても、ネイティブで
    2Dに対応ということで期待しています!!
    4.3で軽くなったりって夢を見ていますが、どうなるのでしょうか?
    ちょー 楽しみで毎日ぐっすりです。

    Category: 開発日記(Unity)

    tb 0 : cm 5   

    【Java】SQLiteでDBを操作してみる その2 

    ( ノ゚Д゚)こんにちは~
    大坂です。

    モンスラ」をリリースしてから9日立ちました。
    皆様・・・本当に・・・ダウンロードだけでもいいので・・・お願いしますm(_ _)m

    はい、先週に引き続きSQLiteのお話です。
    ネタがないので細かく区切ってるのは皆様お気づきでしょう。

    先週はテーブルを作成するところを書いたので、今週はテーブルへのアクセスとセレクトについて。


    public class TestActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    LinearLayout layout = new LinearLayout(this);
    layout.setOrientation(LinearLayout.VERTICAL);
    setContentView(layout);

    // 先週書いた記事のDBHelper
    TestDatabaseHelper helper = new TestDatabaseHelper(this);
    SQLiteDatabase db = helper.getReadableDatabase();

    // テーブル名, 取得するカラムを指定
    Cursor c = db.query("test_table", new String[] { "*" },
    null, null, null, null, null);

    // セレクトされた行があればTrueが返却される
    boolean isData = c.moveToFirst();

    while (isData) {
    // idを取得
    int id = c.getInt(c.getColumnIndex(BaseColumns._ID));
    // 名前を取得
    String name = c.getString(c.getColumnIndex("name"));
    // 性別を取得
    String sex = c.getString(c.getColumnIndex("sex"));
    // 年齢を取得
    String age = c.getString(c.getColumnIndex("age"));

    // テキストビューを生成
    TextView tv = new TextView(this);
    tv.setText("ID:" + id + ", 名前:" + name + ", 性別" + sex + ", 年齢" + age);

    // テキストビューをレイアウトに追加
    layout.addView(tv);

    isData = c.moveToNext()
    }
    // カーソルのクローズ
    c.close();
    // dbのクローズ
    db.close();
    }
    }

    「queryメソッド」の引数について
    第一引数:String テーブル名
    第二引数:String[] セレクトするカラム名
    第三引数:String 検索条件にするカラム
    第四引数:String[] 検索条件のパラメータ
    第五引数:String group by句
    第六引数:String having句
    第七引数:String order by句

    今日はここまで!
    ではでは、また来週(´・ω・)ノシ

    Category: 開発日記(Java)

    Thread: 日記

    Janre: 日記

    tb 0 : cm 0