Unity3D上のAndroidプラットフォーム

画像



おそらく、新しいUIがリリースされた後でも、Androidのインターフェイスを作成することは多くの人にとって大変な問題でした。

Unity 4.6に登場した新しい「UI」システムは、開発者の生活を大幅に簡素化しましたが、それでもAndroidに関連するいくつかのポイントを明確にしたいと思います。



プロから:

強力なツールキット

-さまざまな解像度でのスケーリングを修正し、不必要な作業を排除します

-追加設定なしでタッチコントロールをサポート

-柔軟性と使いやすさ



この記事は2つのパートに分かれています。



最初(基本)-Unity3Dを使い始めたばかりの人向け。 2番目は、実際には、Androidのプラットフォームゲームのコントロールの実装です。



パート1



1)最初に、新しいシーンを作成します[ファイル]> [新しいシーン]。



2)「アセット」フォルダーで、「スクリプト」と「スプライト」の2つのフォルダーを作成します。



3)次に、準備したスプライトが「スプライト」フォルダーに追加されます。



スプライト:

画像

画像

画像

画像

画像

画像



ピクセルモードで作成されているため、プラットフォームとキャラクターの「ポイント」アイテムにフィルターモードを設定します。



画像



キャラクターのスプライトをステージ、いくつかのプラットフォームスプライト、および背景にドラッグします(以前はサイズを大きくしていました)。



次のようなものが得られるはずです。



画像



Rigidbody2D、CircleCollider2Dなどのコンポーネントにキャラクターを追加し、Z軸に沿った回転の可能性を固定します。

すべてのプラットフォームでコンポーネントが追加されます:BoxCollider2D。



画像



4)GameObject> UI> Imageを使用して3つの画像をシーンに追加します。



これが私たちの将来のインターフェースです(ボタン:右、左、ジャンプ)。



画像



サイズを調整して次に進みます。



左側では、「スナップ」を左下の端に設定し、右を右下に設定します。



画像



ソース画像の各画像について、スプライトをドラッグします。



結果は次のようになります。



画像



これで最初のパートは終わりです。



2番目の部分では、スクリプトの作成に進み、ボタンに機能を追加します。



パート2



それでは、メインのものに移りましょう。



1)「Scripts」フォルダーに新しいスクリプトを作成し、「CharController」という名前を付けます(C#で記述します)。



コードを貼り付けます:

using UnityEngine; using System.Collections; public class CharController : MonoBehaviour { public Rigidbody2D rb2d; public float playerSpeed; public float jumpPower; public int directionInput; public bool groundCheck; public bool facingRight = true; void Start() { rb2d = GetComponent<Rigidbody2D>(); } void Update() { if ((directionInput < 0) && (facingRight)) { Flip(); } if ((directionInput > 0) && (!facingRight)) { Flip(); } groundCheck = true; } void FixedUpdate() { rb2d.velocity = new Vector2(playerSpeed * directionInput, rb2d.velocity.y); } public void Move(int InputAxis) { directionInput = InputAxis; } public void Jump(bool isJump) { isJump = groundCheck; if (groundCheck) { rb2d.velocity = new Vector2(rb2d.velocity.x, jumpPower); } } void Flip() { facingRight = !facingRight; Vector3 theScale = transform.localScale; theScale.x *= -1; transform.localScale = theScale; } }
      
      





「シンプルさが成功の鍵です」-私たちの場合はそうです。 キャラクターの移動とジャンプは、個別のvoid'yによって実装されました。

このスクリプトをキャラクターに掛けます。 このすべてを結び付けるために、イベントシステムが役立ちます。



2)便宜上、混乱しないように「ボタン」の名前を変更します。



例:「leftButton」、「rightButton」、「jumpButton」。

各ボタンにイベントトリガーコンポーネントを追加します。



画像



次に、イベントトリガーコンポーネントの[左]ボタンに、2つの新しいイベント、PointerDownとPointerExitを作成します。



画像



PointerDownとPointerExitで1つのイベントを作成し、各文字(スクリプトがハングする必要がある)をドラッグします。ドロップダウンメニューをクリックして、スクリプト「CharController」> void「Move(int)」を見つけます。



画像



「右」ボタンを使用して同様の操作を実行します。

「ジャンプ」ボタンに、PointerEnter> CharController> Jump(bool)のみを追加します。



3)値を設定します。



キャラクター:



画像



左ボタン:



画像



「右」ボタンの場合、PointerDownの値も「1」に変更します。



4)プロジェクトを実行します:



画像



以上です!



もちろん、この記事に「AからZへの開発」という名前を付けることはできませんが、多くの人がAn​​droidのコントロールを作成する方が簡単になると思うでしょう。 ご清聴ありがとうございました。



PSアドバイスと批判にとてもうれしいです。



All Articles