Unity NGUI UILabel周りをスクリプトを扱う方法一覧

Unityの便利なasset NGUI。
そのNGUIの「UI Label」をスクリプトから扱う方法

テキストの基準位置の変更(左寄せや、下寄せ等)

GetComponent<UIWidget>().pivot = UIWidget.Pivot.Center; //センタリング

または

GetComponent<UILabel>().pivot = UIWidget.Pivot.Center; 

でもOK

テキストの表示領域のサイズ変更

GetComponent<UIWidget>().width = 60; //幅
GetComponent<UIWidget>().height = 60; //高さ

Unity5で対象物を一定速度でドラッグ&ドロップ

Unity5で、タップした位置に対象物を移動。

タップした位置に、パズルのピースのようにものを移動する場合。

using UnityEngine;
using System.Collections;

public class dragSample : MonoBehaviour {
    float touchX;
    float touchY;

    void Update(){
        touchX = Input.mousePosition.x;
        touchY = Input.mousePosition.y;

        if(Input.GetMouseButton(0)){
            OnDrag();
        }
    }

    void OnDrag(){

        gameObject.transform.position = Vector3.MoveTowards (gameObject.transform.position,Camera.main.ScreenToWorldPoint(new Vector3(touchX,touchY,10.0f)), 0.1f);
    }
}

解説

  • Camera.main.ScreenToWorldでタップ位置の座標に変換
  • MoveTowordsで、対象物と、持って行きたい位置、それとそこまで移動する速度

マウスのドラッグ&ドロップするように移動する場合は、

MoveTowordsを除けばOK、下記のように。

transform.position = Camera.main.ScreenToWorldPoint(new Vector3(touchX,touchY,10.0f));

Unity5 rigidbody2Dで、x,y,zの軸を固定する

x,y,zのいずれも固定する場合。

GetComponent<Rigidbody2D> ().constraints = RigidbodyConstraints2D.FreezeAll;

固定を解除する場合。

GetComponent<Rigidbody2D> ().constraints = RigidbodyConstraints2D.None;

z軸(回転)以外だけ解除する場合。

GetComponent<Rigidbody2D> ().constraints = RigidbodyConstraints2D.FreezeRotation;

スクリーンショット 2016-04-24 22.11.20

条件式で、どのタイプで固定されているか判別する場合

if( GetComponent<Rigidbody2D> ().constraints == RigidbodyConstraints2D.FreezeAll){
  // すべて固定されていたら
}

iTunesでmp3ファイルの圧縮方法!!

下手に知識がない状態で圧縮をすると逆に容量が増えたり、
音質が必要以上に悪くなることがありました。。が!

iTunesさえあれば、簡単にmp3(音源)ファイルを、
いい感じに圧縮できました!

音源のビットレートを小さくすることで圧縮率を変更します。

個人的に、忘れそうなのでメモ!!!

手順

1. ituneアプリまず起動。

2. メニューから、「環境設定」を開く

3. 一般環境設定のダイアログが表示されるので、「一般」タブを選択。

スクリーンショット 2016-01-03 23.25.12

4. 続いて「CD がセットされたとき:」の項目で、「読み込み」を選択し、右側の「読み込み設定…」をクリック。

5. 読み込み設定のダイアログが表示されたら、「読み込み方法:」の項目で、「MP3 エンコーダ」を選択。

スクリーンショット 2016-01-03 23.35.51

Unity5(C#) 2Dで物理ゲーム使う際によく使うメソッド一覧


回転角度取得

transform.localEulerAngles.z

左右方向への速度

GetComponent<Rigidbody2D> ().velocity.x

上下方向への速度

GetComponent<Rigidbody2D> ().velocity.y

全方向への速度を取得

GetComponent<Rigidbody2D> ().velocity.magnitude

重力や速度が早すぎてものを貫通する時等の制御に。

指定角度への力を加える

void Boost(float,direction,float speed){
    Vector2 v;
    v.x = Mathf.Cos(Mathf.Deg2Rad * direction) * speed;
    v.y = Mathf.Sin(Mathf.Deg2Rad * direction) * speed;
    GetComponent<Rigidbody2D> ().AddForce (v); //力加算
}

「cocos2d-x 3.5」 と 「cocos studio 2.2」の開発環境構築。

cocosインストール

http://www.cocos2d-x.org/download

こちらcocosというランタイム?をインストール。
またcocos studio2.2をインストール。
起動時のメニューにて、storeというのがあるので、
そこからcocos2d-x 3.5をダウンロードし、インストール。

初期セットアップ

$python setup.py 
$source ~/.bash_profile

テンプレートプロジェクトを作成 (ios&android)

$cocos new MyGame -p com.example.hoge -l cpp -d ~/project_folder/hoge_cocos2dx

iOSで開発

$cd ~/project_folder/hoge_cocos2dx/
のxcodeファイルを開けば、iosの確認が可能。

アンドロイドで開発(IDEつかわずに直接端末つないでadbのパターン)

$cd proj.android/
$python build_native.py 

android端末にインストール

$cd ~/project_folder/hoge_cocos2dx/MyGame/proj.android/bin/
$adb install MyGame-debug.apk

Unity 初歩的ミス 早見表

1. iOS/Androidでビルドできない

  • バンドル名や、アプリ名を設定したか。Player Settingで確認。
  • xcodeでビルドできない場合は、UnityのFree版でスプラッシュ画像を等をいじっていないか確認。(Pro版大丈夫)

2. リドゥ・アンドゥ(一つ前、戻す前に)ができない

  • ファイルの削除は本当にもどせないので注意!
  • プログラム自体がエラーなど吐いていると、リドゥ・アンドゥ自体がきかなくなったりする(再起動などしてみる)
  • capsロックになっていない?
  • オブジェクトのアクティブON/OFFをカスタマイズしたショートカットにしていると、その分は戻せない。

3. Materialの編集ができない。

  • Materialのインスペクタのアイコン部分をクリックするとアコーディオンが開ますw

スクリーンショット 2015-07-27 23.53.38

4. Mesh Colliderをいくら設定しても、あたり判定がきかない。

“Unity 初歩的ミス 早見表” の続きを読む

Unity toon shader(トゥーンシェーダー)で、iphone,androidの実機が陰影がついてしまう

環境:Unity4.6 MacOSX yosemite

Unityの便利な機能toonで、アニメ調に3Dモデルを表示をしたい時

スクリーンショット 2015-06-10 8.59.20

でいろんなタイプの設定が可能。

陰影をなくしたり、枠線をつけたり。
高機能!

ただそのまま、iPhone端末や、Android端末の実機で実行すると、陰影がなくしたはずなのに、適応されてない!!

そんな時は、iphoneとandroidである、プラットフォーム別の設定を変えてみると、
無事実機でも反映されておりました!

iOS / Android のPlayer Settingをいじる

スクリーンショット 2015-06-10 9.06.09

PlayerSettingsの、
Graphics API を[automatic]から[Open GL ES 2.0]に変更すると無事、実機でも反映確認できました。
Androidも同様な設定項目があるので同じく設定

参考になれば幸いです!!!

swiftあるある

間違えやすい系

int型を文字列として表示する際…


var intHoge = 100 label.text = String(intHoge) // 100と表示 var intHoge = -100 label.text = String(intHoge) // マイナスだと表示されない label.text = intHoge.description

挙動系

これを実行すると


println("評価ノード: \(evalX) \(evalY) \(boardScores[evalX][evalY])")

シミュレータ(iphone5s)では…


評価ノード: 5 5 5 評価ノード: 5 3 5 評価ノード: 3 5 5 評価ノード: 5 5 5 評価ノード: 5 3 5 評価ノード: 3 5 5

実機(iphone5で実行)では…


\350\251評\344\276価\343\203ノ\343\203ー\343\203ド\357\274: 3 4 3 \350\251評\344\276価\343\203ノ\343\203ー\343\203ド\357\274: 5 4 5 \350\251評\344\276価\343\203ノ\343\203ー\343\203ド\357\274: 6 4 -5 \350\251評\344\276価\343\203ノ\343\203ー\343\203ド\357\274: 7 4 -5 \350\251評\344\276価\343\203ノ\343\203ー\343\203ド\357\274: 4 5 5 評価ノード: 1 2 -20

…そもそも日本語を使うなと言われそうですが、日本語がおかしくなる。そして僕の日本語もおかしい。。