チュートリアル前回のチュートリアルでは、ボールの飛距離をUIテキストとしてゲーム画面に表示する方法をお送りしました。テキストの更新タイミングがボールの停止時だけで、プレイヤーに分かりにくいことから、現在の飛距離は常に表示を更新し、飛距離の最大値をハイスコアとして保持するようにしてみましょ。今回は前回の応用編かつ復習的な内容です。前回のチュートリアルはこちらから。エクスプラボ【第11回】スクリプトからUIテキストの文字を書き換えるチュートリアルhttps://ekulabo.com/tutorial-text-editingUIテキストを使って、斜方投射で飛んでいくボールの飛距離を表示するUnityのチュートリアルです。UIテキストは使用頻度が高いので、スクリプトからの操作方法を早めにマスターしておくと超お役立ちです。まとめ今回の目的ゲーム画面に表示するボールの飛距離を常に更新するようにします。ハイスコアの表示も追加し、飛距離の最大値が更新された時にハイスコアも更新されるようにします。前回のチュートリアルで作成したプロジェクトをそのまま使います。このページに先にたどり着いた方は、チュートリアルの初回から追っていただけるといいかもしれません。IDも登録してサインインした。いうあなたに向けた超入門チュートリアルです。Unityの物理演算を体験するため、物体を自由落下させてみましょ。前回作成した飛距離表示用の『DistanceText』オブジェクトとは別に、ハイスコア表示用のテキストオブジェクトを作ります。今回もUIテキストを作るので、手っ取り早くDuplicateしちゃいましょう。『DistanceText』オブジェクトを選択し、右クリックまたは二本指タップでコンテキストメニューを開きます。(1)』が作られます。新しくできたオブジェクトは『HighScoreText』にリネームします。Duplicateで複製する個人的にハイスコアが上にいて欲しいので、まずは『DistanceText』オブジェクトの位置を下にずらします。Yを[-150]に変更しましたが、実際の画面に合わせて調整してください。m]、文字の色を[FFFF00FF](黄色)にします。色はお好みで大丈夫です。Scoreってなんか黄色いイメージ設定が終わるとこんな感じに表示されます。表示用のオブジェクトができたので、スクリプトを編集しましょ。メインディッシュです。今回は、ハイスコアの表示と、飛距離の毎フレーム更新が目的です。スクリプト編集の方針は以下の通り。押して初期位置に戻ったら現在の距離をリセット。ハイスコアは残すこの辺りを盛り込んで更新した結果は以下のものになります。ポイント毎に解説していきます。最初にメンバ変数を追加しました。上のdistanceTextObjectは前回と変わらずですが、その下のhighScoreTextObjectを追加しています。これはハイスコア表示用のUIテキストへの参照をセットします。下の方では、前回同様にハイスコア表示用オブジェクトのTextコンポーネントへの参照をキャッシュし、表示する文字も定義しています。今回新たにハイスコアの値を格納するfloat型の変数も追加しています。Gist.次はStart()の中身を更新。言ってもハイスコア表示用オブジェクトのTextコンポーネントへの参照をセットし、SetHighScoreText()で初期値をセットしています。Gist.続いてStopFlying()です。ボタンを押して初期位置に戻る際、現在の距離をリセットしています。この時、ハイスコアは保持したままです。Gist.そしてCheckDistance()です。前回は『Sphere』オブジェクトのスリープ時に『DistanceText』オブジェクトに対して距離をセットしていましたが、今回は距離測定中であれば毎フレーム値を更新するようにしています。スリープモードに入ったところで、ハイスコアのチェックを行なっています。保持されているハイスコアと停止時の距離を比較し、大きい方をハイスコアとして残します。ハイスコア自体が変わらなくても、『HighScoreText』オブジェクトへのセットを通りますが、プレイヤーからは何もしていないように見えます。Gist.最後にSetHighScoreText()を追加しています。前回作成したSetDistanceText()と同様に、プレフィックス、引数の距離、サフィックスを組み合わせて文字列を生成し、ターゲットのTextコンポーネントにセットしています。Gistで公開しています。手っ取り早く確認するならこちらをコピペ。オブジェクトの参照をセットスクリプトの編集と保存が終わったら、つい忘れがちなオブジェクトの参照をセットします。エラーは回避したいですからね。Objectに今回作成した『HighScoreText』オブジェクトをドラッグ&ドロップします。右の丸ボタンから『HighScoreText』オブジェクトを選択してもOKです。忘れるとぬるぽ前回からぬるぽぬるぽ言ってますが、参照のつけ忘れで出るのは正確にはUnassignedReferenceExceptionです。参照を設定したら、ゲームを実行してみましょ。GIFは例のごとく2倍速です。距離の表示が更新されるので、まだ動いていることがプレイヤーにも伝わりやすくなったはず。数字の増え方が遅くなれば「そろそろ止まるかな」と予想もつきますし、前回よりは良くなったことでしょう。ハイスコアの更新も良さそうですね。前回の記録を塗り替えたらハイスコアを更新しています。Scoreの値は変わりません。お手元のUnityで確認してみてくださいな。次なる課題ボールが停止した時の距離をハイスコアに設定することができました。ボールが停止しなかったら?今の状態だと、ボールが飛んだ後、地面と衝突してから回転運動が始まり、その減衰で速度が低下します。ボールが停止しないケースは......そう、地面を飛び越えて遠くに飛んでいくケースです。実は第10回あたりから意図的に伏せていましたが、次回はついに対策を行います。具体的には地面、ゲーム的に言えばコースから落ちた時の処理を入れることにしましょう。まとめ今回は飛距離を毎フレーム更新し、止まった時の距離でハイスコアも更新するようにしました。画面に数字が表示されるようになるといよいよゲーム的な世界に近づいてきた感じがします。次回はボールが停止しないケース、すなわちコースアウトする時の処理を実装します。エクスプラボ【第13回】落下判定用のColliderを配置するUnityチュートリアルhttps://ekulabo.com/tutorial-course-outUnityでアクションゲームなどを作る際に使われる落下判定。今回は落下判定用のColliderからIsTrigger衝突を検知するチュートリアルです。このページでは落下を検知するオブジェクトの配置を行い、次のチュートリアルでスクリプトの編集を行います。ゲーム開発の攻略チャートを作りました!「ゲームを作ってみたいけど、何から手を付けていいか分からない!」そんなお悩みをお持ちの方向けに、todoがアプリをリリースした経験を中心に、ゲーム作りの手順や考慮すべき点をまとめたe-bookを作成しました。ゲーム作りはそれ自体がゲームのように楽しいプロセスなので、「攻略チャート」と名付けています。投稿一覧Unityを使ってアプリを作ったり、Assetを作ったりしてる個人開発者。Unity全般ネタとAsset開発の情報を扱っています。Asset開発は日本語の情報が少ないのよね。ことで些細なネタでも情報を蓄積するのが目的です。2018.04.11Unityでメンバ変数をInspectorウィンドウに表示するチュートリアルです。2018.04.17斜方投射でどこまで飛ぶのかを表示する予想経路(ガイド)作成のUnityチュートリアルです。2018.04.11ボタンを押すことで3Dオブジェクトが斜方投射で運動するUnityチュートリアルです。2018.04.21UnityのUIであるSliderを使って、上下するメーター(ゲージ)を実装するチュートリアルです。2018.04.07物体が自由落下したあと、地面に衝突して跳ね返る動きを実装するUnity初心者向けのチュートリアルです。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。todoUnityのアセットを作ったり、スマホ向けのアプリを作っています。このブログではUnity初心者に向けたチュートリアルやテクニックを放出しています。詳しいプロフィールはこちら。お仕事の相談や現在提供中のサービスについては、こちらの『サービス内容』のページをご覧ください。Explorers_todoオンライントレーニングのサイトをオープン!エクスプラボを運営しているtodoが、より集中的にゲーム作りについて学べるオンライントレーニングのサイトをオープンしました。エクスプラボのトレーニングルーム』です。勉強したことの進捗も表示できるようになっているので、どれだけ頑張ったのかが分かるようになっています。ゲーム開発の攻略チャート』というe-bookをプレゼントしています。メルマガではゲーム開発のテクニックを中心に役立つ情報をお届けします。詳しくはこちら!お仕事の依頼はこちら!ゲーム開発のサポートも可能!エクスプラボではゲーム開発のサポートのサービスも行なっています。いう場合にオススメのプランです。詳細はこちら!もちろん、普通に開発依頼をいただいてもお手伝いします。その場合はお問い合わせへ。【Unity】ポストプロセシングを使って簡単にプロっぽいゲーム画面を作るゲームの作り方を学べるオンライン講座のサイトをオープンしました!RANKING【Unity】Mathfの切り上げ、切り捨て、偶数丸め。使い分けが大事よねMathf【Unity】ゲームといえばランダム要素。(12)作ったアプリ空とにゃんこと風船と癒し系縦スクロール避けゲーの『空とにゃんこと風船と』(TODOWORKS名義でリリース)気軽に遊べるスマートフォン向けアプリです。ボクセルアートで彩られるどこかレトロ、でも新しい世界で癒されてみませんか?ぼく、猫ですって!タップ系RPG『ぼく、猫ですって!』(TODOWORKS名義でリリース)気軽に遊べるスマホRPG。