スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

【Unity】ScriptableObjectを使ってて、詰まったこと

Unityで使える"ScriptableObject"って知ってますか?
簡単に説明すると、Unityでデータを共有することができるクラスです。

例えば、ゲーム内の店舗別のアイテム格納とか、キャラクターの基礎ステータスをもたせたりなんて時に使います。

具体的に実装すると、
---ItemShopData.cs
[System.Serializable]
public class ItemShopData : ScriptableObject {
[SerializeField]
public List ItemList;
}

[Serializable]
public class Item {
public int id;
public string itemName;
public int price;
}


こんな感じでしょうか。
あとは、Inspector上でデータを入れて上げて、Resourcesフォルダにでも入れておけば、誰でも触れるデータベースになりますね。

さて、ここで私が陥ったミスです。
ファイル名をItemShopData.csではなく、Item.csとしてました...
この結果、タイトルシーンでは作成したデータベースをなぜか触れて、他のシーンではnullになってしまってました。
また、Inspector上で
The associated script can not be loaded. Please fix any compile errors and assign a valid script.
って出てました。

調べても、なかなか解決できなくて、ふとスクリプトを見なしたら、名前が...ってなったので、一応記事に残しておこうと思いました。

皆さんも気を付けましょう(笑) ←
スポンサーサイト

【LaTex】プログラムを載せるときに便利なもの【moreverb】

気づいたら、ブログの更新が一ヶ月以上空いてしまってました。
ガラポンのことを記事にしていなかったのが原因だった気がします。

さて、今回はLaTexを使って、プログラムのソースコードを綺麗に表示する便利なパッケージの紹介をします。

moreverbです。

使い方は
\usepackage{moreverb}
で使いますよ宣言をします。

・そのまま出力
\begin{verbatimtab}[タブの大きさ]
ソースコード
\end{verbatimtab}
タブの大きさはデフォルトで8スペース分になっているそうです。
自分は4スペースが見やすいと思っているので、[4]と書いています。
主に、インデントのところが当てはまりますね。
verbatim環境の強い版みたいな感じですかね。

・外部のファイルをそのまま使う
\verbatimtabinput[タブの大きさ]{外部ファイル}
外部ファイルを読み込んで、そのまま表示してくれます。
プログラムのソースとか、そのまま書いてしまえば、一発です。楽です。

・行番号付きの表示
\begin{listing}[何行おきに数字を付けるか]{最初は何行目?}
ソースコード
\end{listing}
そのまま出力の行番号付きも作成できます。
基本的には
\begin{listing}[1]{1}と書けば、一番上から1,2,3...と行数が出てきます。
自分は、プログラムの部分的な出力のときに使っています。
詳しく説明したいときとか、見やすくできるかもですね。
5行目から8行目まで書きたいのであれば、
\begin{listing}[1]{5}と書けば良いのです。便利〜。

・外部ファイルの行番号付き表示
\listinginput[何行おきに数字をつけるか]{最初は何行目?}{外部ファイル}
これがおそらく最強ですね。
プログラムのソースコードを表示する上で、一番楽なのではないでしょうか?

他にも使い方があるとは思いますが、プログラマな私が主に使っているのはこんな感じです。

【Unity】ゲームができた&セーブデータについて【漢字探し】

寒くなって、風邪を引いている人をよく見かけるようになりましたね。
そんなのどうでもいいよ。

はい、今回の進捗です。
ゲームが完成しましたー。
まずはタイトル画面、どーん。

2015_10_17_01


はい、スマホアプリとして作成した『漢字探し』です。
操作方法はいたってシンプル。
まずは遊びたい「漢字」を選びましょう。

2015_10_17_02


そうですね、まだ遊べる漢字が少ないですね。
ここは、今後考えて増やさないとねー。

次は、遊んでいる画面です。

2015_10_17_03


「犬」で遊んでいるので、「犬」の中に紛れた「大」を探してみましょう。
見つかりましたか?
見つけたら、そのパネルをタッチしましょう。
画面が切り替わるので、どんどん間違いを探していきましょう。
右上のタイムが0になるまで、遊び放題です、やったね。
左上のスコアをどんどん増やして、ハイスコアを目指しましょう。

最後に、スコア画面です。

2015_10_17_04


タイトルに戻るか、同じ「漢字」で遊ぶか、他の「漢字」で遊ぶかを選べますね。
どんどん、遊んでいきましょう。

制作期間は、10月2日から10月16日でした〜。
まぁ、シンプルなゲームなので、そんなもんでしょう。


ここで、一つ問題点が...
ゲームデータを更新する場合(中のデータだけ)、どんな手段で更新したらいいのでしょうか?
本来なら、ゲーム用のサーバーか何かを立てて、ゲーム起動時にそのサーバーにアクセスして、更新の有無を確認するのですかね?
そういうのって、OneDriveとかDropBoxとかで代用できたりするのかなぁ?
まぁ、とにかく、そういう仕組みは作っていないので、今後考えていかなければなりませんね。


ここから、セーブデータについて

皆さんは、セーブデータを作成するとき、どのような方法を取っていますか?
私はいつも、1つのテキストデータに全部書いて、それをプログラムで読み書きするってことをしています。
しかし、今回のアプリは各問題のスコアを保持しておきたいので、1つのテキストデータだとちょっと効率が悪かったです。
なので、各問題のスコアごとにセーブデータを作っていました。
でも...
Androidにプロジェクトを移す際に、そのデータのせいか、C#の読み書きのせいかビルドができませんでした....

んで、解決策を探して見つけたのがこれ
LitJSON
LitJSONの公式
使い方等は詳しく説明してくれているサイトがたくさんあったので、そちらを見てください(おい
簡単にいうと
1. 公式からLitJSON.dllをDLして、Assets/Pluginsフォルダ(ディレクトリ?)に置いておきます。
2. Assets/JSONってフォルダ(ディレクトリ?)を作成して、その中に拡張子.jsonってファイルを作成します。
3. .jsonファイルにデータを書き込んでいきましょう。
ファイルの中身はこんな漢字で書きます.
[
{"犬","大",0},
{"猫","描",0},
]

右から、"答え","間違え","ハイスコア"ですね。
カッコで一つの問題データって感じですかね。
あとはデータを使えるように
public class SaveData {
public string Ans;
public string Miss;
public int HighScore;
}

あとは、SaveDataでリストを作成して、読み込みます。

とりあえず、これでデータを扱えるようになります。
ね?簡単でしょ?
すごく使えると思うので、ぜひ詳しく調べてみてください。(おい

私も使い始めたばかりなので、うまく説明できませんが、こんな感じで。

続きを読む

【Unity】新しいゲームの着手とNGUIのButtonについての話

久々の更新ですね。
遊戯王が再熱していて、力が分散しています 笑

さて、今回は新しいゲームを作り始めたので進捗を報告していきましょう。

まずはゲームのジャンル(タイトルはまだ決まってない...)
それは、”間違え探し”です。
似ている漢字がたくさん並んでいて、一つだけ違うものがあります。
その中の間違えを制限時間内にいくつ見つけられるかという、単純なゲームです。

プラットフォームはパソコンとAndroid端末の両方に対応させます。

現在できている部分
・タイトルからゲームオーバーまでのループ
・どの漢字で遊ぶか選択シーン
・実際にゲームで遊ぶシーン
です。

今後やらないといけない部分(最低限)
・タイトルシーン
・結果のシーン
・スコアの記録部分
ですね。

余力次第で追加する部分
・SNSにスコアを投稿する
・オンラインでのランキング
・辞書
・オプションによる言語の変更
ですねー。やれたらいいなー。

ちょっと困っているのが、問題が増えた時の処理ですね。
セレクト画面で問題を表示しているのですが、画面外にならないように、制御しないといけないですね。
まとめた部分がいっぱいになったら、新しい部分を作成するのは簡単にできそうです。
しかし、新しい部分をどのように表示させるかがちょっと難しい。
出題する問題を増やす事を考えると、どうしても必要になりそうです。
今のうちに考えておかないとですね。

ここまでが、新しいゲームのお話でした。

次に、忘れないうちに書いておきたいNGUIのButtonについての話。

・Gridを使っているのにボタンがセンターに寄ってくる現象について。
これは、ボタン側にある、UI Button Offsetを無効にするだけで大丈夫でした。

・UI ButtonMessageについて
ボタンが押された時に、ターゲットとメソッド名を指定する事で押された時にそのメソッドを起動できるというものです。
メソッドの引数にGameObject型を持っていると、押したボタンが格納されるのですよ。
確か、SendMessageか何かと同じ感じですよね??
これを使うと、押されたボタンに何かデータを持たせて置くことで、指定されたメソッド内でそのデータを無理やり扱えるのですよ。
今回作成しているゲームでは、各ボタンが問題のデータを持っているので、それをGameManagerなどに渡せるようになりました。
便利ですが、ちょっと怖い気もする機能ですね...

まぁ、今回はこんな感じで!

【Unity】進捗10 【Step Push改め星河メイの打だダDA☆】

Unityの更新が遅れてすみません。
って誰に謝ってるんだろう...

さて、色々と書いてきたStep Pushも今回が最終更新となるかと思います。(多分ね)

・タイトルが変更になりました。
「Step Push」から「星河メイの打だダDA☆」になりました。
それに伴い、タイトル画面を変更。

・リロードの重みを追加
キャラクター性能の差別化として、リロードをミスしたときに操作できない状態を追加しました。
撃てる弾が残っている状態でリロードを行うと、待ち時間が発生します。
強いキャラクターの場合、待ち時間が長いので、ミスが許されなくなります。

・おまけの画面を作成
これは、一度遊び終わるとタイトルに戻るかコンテニューするかを選べます。
その画面で、タイトルに戻ると別種類のタイトルが現れるようになります。
なんとなく、色々と思考錯誤したタイトル画面を全て採用してしまった結果ですね。
最初のタイトル以外は動きがあるので、面白いと思うんです。

最後に、今回の企画のために作成したポスターを貼っておきましょう。

ポスター01

このゲームは2015年9月17日から20日までに行われる「東京ゲームショウ2015」のゲームスクールコーナーで遊んでもらうために作成したものでした!
できたら、多くの方に遊びに来て欲しいですね^^

いつか、ブログを見返したときにいい思い出になりますように。
プロフィール

farCiel

Author:farCiel
自由気ままに楽しく書いていければ良いですね.

最新記事
最新コメント
月別アーカイブ
カテゴリ
amazon
アクセス数
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
ß
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。