LemonteaのUnity部屋

C#とかのお話です~

アプリ用の四隅(角)が丸い画像を作れる超便利な無料サイト

こんにちは。レモンティーです。
今回は、タイトルの通りの超便利な画像加工サイトの紹介です。

そのついでにUnityでアイコンを設定する方法も書きます。

そのサイトはこちら↓です。無料ですからご安心を(2017.8/6時点)

www.quickpicturetools.com

さっそく使ってみました。

f:id:sawalemontea:20170807010638p:plain

まずは丸めたい画像を選びます。

f:id:sawalemontea:20170807010726p:plain

そうしたら、赤丸のところで
ファイル形式をPNGにしましょう。

f:id:sawalemontea:20170807010828p:plain

次に、赤丸のチェックボックスにチェックをいれ、透過させます。

後は、青丸のところで丸め具合を調節するだけです。

f:id:sawalemontea:20170807011014p:plain

好きなだけ丸めたら、赤丸のボタンで保存して
Unityへ。

Projectにドロップしてインポートします。
f:id:sawalemontea:20170807011146p:plain

そうしたら、
BuildSetting>PlayerSettings で
アイコンに設定します。
ドロップするだけです。

f:id:sawalemontea:20170807011725p:plain

これで縁の丸いアイコンになりました。

もし透過してなかったら
TextureTypeをSpriteにしてください。

今回はこれでおしまいです。

Unity 自作の絵や写真 を シーンやボタンに使う方法

こんにちは。レモンティーです。

今回は、Unityで自作の絵や、写真なんかを使う方法を書きます。

ざっくり言うと、
インポートしてTextureTypeを変えるだけですが…

私自身がTextureTypeとか言われても知らんし…
って感じだったので書いておきます。

なにはともあれまずはインポートです。
これは、ProjectにドロップすればOKです。


f:id:sawalemontea:20170807003420p:plain

↑赤で囲った所ですね。

そうしたら、Inspectorを見てみましょう。

f:id:sawalemontea:20170807003524p:plain

赤丸の所をクリックして、
TextureTypeをSprite (2D and UI)
にしましょう。

これで、ゲームシーンに直接
絵や写真を貼り付けたり…

f:id:sawalemontea:20170807004559p:plain

ButtonのSourceImageに設定して、ボタンにしたりできます。

f:id:sawalemontea:20170807004628p:plain

f:id:sawalemontea:20170807004640p:plain

ボタンが自由にできると、
一気に楽しくなりますよね。

今回はここまでです。
ほかのTextureTypeについては↓に完全にのっています(それはそう)

docs.unity3d.com

GooglePlay アプリの更新 バージョンコード変更とは?

こんにちは、レモンティーです。

この間、GooglePlayStoreむけに
アプリをビルドして公開する記事をかきました。

sawalemounity.hatenablog.com


あれで最初の一回は問題ないのですが、
現実には一度出したら終わりではなく、
更新をおこないますよね。

そこで今回は、アプリの更新について書きたいと思います。

まず、GooglePlayConsoleで
すべてのアプリ から更新したいアプリをクリックして
ダッシュボードを開きます。こんなやつです

f:id:sawalemontea:20170807000933p:plain


そしたら左のメニューを見てください。
↓の赤丸のV2ロケットみたいなマークをクリックします。

f:id:sawalemontea:20170806235315p:plain

すぐ下にメニューがでますので、
アプリのリリース を選びます。

するとこんな画面になります。

f:id:sawalemontea:20170806235600p:plain

赤丸をクリックです。

あとは 手順としては 今まで通りです。

APKをアップロードして、下のほうの「確認」を押し、
次のページで公開をおせばいいですよね。

ではなにが違うかというと、
ただ中身を更新しただけではアップロードできない点です。

同じバージョンコードのAPKだと
「バージョン コード 1 の apk が既に存在するため、別のバージョン コードを使用する必要があります。」
というエラーがでます。

なので、Unityにもどり、
バージョンコードを書き換えてもう一度ビルドしましょう。

バージョンコードは
BuildSetting>PlayerSettings>Bundle Version Code で変えられます。

f:id:sawalemontea:20170807000124p:plain

ここですね。
ふつうは1.1とかなんでしょうか…
そのへんの常識は詳しくないのですが、前と同じでなければ基本OKです。

いきなり5000兆とかにするのはやめた方が無難だとおもいますが…

ともかく
これで、更新後のAPKをアップロードできるようになりました!

今回はこれでおしまいです。
さようなら~

Unity スクリプト Inputでキー入力、タップ、クリックの判定 GetKey GetAxis GetMouseButton

こんにちは。レモンティーです。

ゲームを作る上で欠かせないのが、プレイヤーさんの行動を認識することですね。
それがなかったら映画みたいになりますし…

Unityではその大事な役割をInputが担っています。

今回はInputについてです。

キー入力

キー入力の取得は

Input.GetKeyDown(KeyCode.A);

のように書きます。
これは、指定したキーが押された瞬間、trueを返します。
それ以外の時はfalseを返します。

なので使用例としては、

if(Input.GetKeyDown(KeyCode.A)){
  //ここにAキーが押された時の処理
}

のようにif文にいれて、特定のキーが押された場合だけの処理をつくったりします。
初めてのUnity(5)のジャンプもそのパターンですね。

キーの指定はKeyCode.~の部分です。
アルファベットのキーはAのようにそのままです。
EnterキーはReturn
SpaceキーはSpace です。

ほかのコードはここに(そんなに使いませんが…)↓
docs.unity3d.com

もうひとつ大事なことがあります。
それはDownの部分です。
これが「押した時」というニュアンスを与えています。
ほかにもUpや何も無しといったものがあり、まとめると

Input.GetKey 押してる間ずっとtrue
Input.GetKeyDown 押した瞬間だけtrue
Input.GetKeyUp 離した(指をあげた)瞬間だけtrue
です。

これはこの他にもたびたび登場する表現です。


ちなみに、なんでもいいからどれかのキーが押されたとき
が取得したい場合は、
Input.AnyKeyDownをつかいます。

十字キー(矢印キー)

プレイヤーの移動によく使われるのがこれですね。
別にKeyCodeで矢印を一つずつ取得してもいいのですが、
左右、上下でまとめて取得できる方法があります。

Input.GetAxis()です。
引数(()の中)としてstring型の軸を指定してあげると、
その軸の正か負、どちら向きの入力がされたかを
-1から1の間の数で返します。

デフォルトでは、
左右の軸はHorizontal、上下の軸はVerticalです。

なので、例えば

 float x = Input.GetAxis("Horizontal");
 float y = Input.GetAxis("Vertical");
 Vector3 Direction = new Vector3(x,y,0);

のようにすると、十字キーで入力された方向を取得でき、
前回の、オブジェクトの移動と合わせると、入力した向きに
プレイヤーを動かすことができます。

また、重力から察するにUnityのデフォルトでは
オブジェクトはxz平面にいて、y方向が高さなので、
それにあわせると移動は↓のように書けます。

    void Update () {
        float x = Input.GetAxis("Horizontal");
        float z = Input.GetAxis("Vertical");      
        Vector3 Direction = new Vector3(x, 0, z)*0.15f;
        GetComponent<Rigidbody>().AddForce(Direction, ForceMode.VelocityChange);
	}

言い忘れましたがベクトルにはスカラーを掛け算できるので
4行目で適当な値を掛け算して移動の速さを調節しています。
なんせそのままだとー1から1のあいだですので、
作っているゲームと合わないこともしばしばあります。

タップ・クリック

タップやクリックですが…
じつはさっきのInput.AnyKeyは、タップやクリックも検知します。

わりとこれでよかったりしますが、特定のものだけ判定したいときは、
UIのボタンなどを使うか、↓のようにEventTriggerを使うといいです。

sawalemounity.hatenablog.com

それでもだめならRayをとばすやり方もあります。
ここ↓とかどうでしょう。

future-software-labo.anyagent.net


あと、マウスの入力は
Inpu.GetMouseButton()でもとれます。

これのすごいところは、左右どちらのクリックか区別できるところです。
()のなかに0,1,2のどれかを引数としてわたすことで判別します。

0が左 1が右 で、2は真ん中のホイールボタンです。 

例えば、左クリックが終わった(指が離れた)瞬間 なら

Input.GetMouseButtonUp(0);

です。


また、Input.touchCountで、何か所タッチされているか取得できます。
これをつかって条件分岐すれば、複数タップの操作も可能です。

switch(Input.toucuCount){
   case(0):
    //タップされていないときの処理
     break;
   case(1):
    //一か所タップされているときの処理
     break;
   case(2):
    //二か所タップされているときの処理
     break;
}

みたいな感じです。


さらに、タップされている座標の取得もできますが…
これは座標の種類の説明がいるので後日書きます。

ずいぶん長くなりましたが、今回はここまでです。

Next

sawalemounity.hatenablog.com

関連
今回のスクリプトの使用
sawalemounity.hatenablog.com

前回
sawalemounity.hatenablog.com