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アドバイスと批判にとてもうれしいです。

Source: https://habr.com/ru/post/J264611/


All Articles