2014年6月11日水曜日

Unityで文字列関連 [Unity C#]

●指定文字が文字列に含まれているか

int iNos = 文字列.IndexOf('D');

含まれている場合は位置の数値を返す。
含まれていない場合は-1を返す



●指定文字列が文字列に含まれているか
bool ans = 文字列.Contains("DDDDDD");

含まれている場合、true
含まれていない場合、false

※indexOfの場合はcharなのでシングルクォートで囲むこと、そうしないとエラーになる


●文字列中に指定文字がいくつ含まれているか
string aData = "A_B_C_";
int Cou = aData.Split(new char[] {'_'}).Length - 1;
Debug.Log ("Cou : " + Cou.ToString ());

結果:Cou : 3

プレハブでインスタンス生成時に子オブジェクト一覧を取得する [Unity C#]

子オブジェクト一覧を取得する

int iCount = transform.childCount;

bool ansTop = false;
bool ansButtom = false;

string Top = "";
string Buttom = "";

void Start () {
for(int i=0; i<iCount; i++){
Transform child = transform.GetChild (i);
Debug.Log("ObjectName : " + child.name);

if (ansTop) {
Top = child.name;
Debug.Log("Top : " + Top);
ansTop = false;
} else if (ansButtom) {
Buttom = child.name;
Debug.Log("Buttom : " + Buttom);
ansButtom = false;
}
}
}




2014年6月10日火曜日

UnityでPNG画像のグラデーションがひどい場合の対処法 [Unity Gimp]

Unityで使用しているPNG画像のグラデーションがひどかったので調べてみた。

通常のPNGはRGBA32bitでUnityで使用するときにRGBA16bitに変換されるらしい。

対処法
①Gimp2でスクリプトを作成してくれた人がいるらしいのでそれを利用する
②「dither16bit.scm」「Gravscales.zip」をダウンロード
③「dither16bit.scm」をGimpのユーザフォルダの「scripts」にコピー
④「Gravscales.zip」を解凍して全ての「.gpl」ファイルをGimpのユーザフォルダの「palettes」にコピー


使い方
「画像」-「モード」-「Dither to ARGB 4444」を選択すると勝手に変換してくれる。
※保存を忘れずに




参考サイト
RGBA4444に変換できるツール
Unityやるには必須!RGBA画像現職の基本をまじめに書いてみた

ありがとうございました

2014年6月2日月曜日

エクセル Excel 関連 [Excel]

1.行の高さを自動調整する

ツールバーの[書式]-[行]-[行の高さの自動調整]を選択すると自動調整される

※セルの連結してるとならないっぽい
※ツールバーとは上のほうに[ファイル][編集][表示][挿入][書式]...とか表示されている個所のこと

三角関数 角度を求める [Unity C#]

球の発射系では発射位置が固定されていると思うが、その際に発射角度を求めたい場合。

float Angle;
float x;
float y;

//角度を求める
Angle = Mathf.Atan ( y / x ) * Mathf.Rad2Deg;

//対象の角度を変更
対象.transform.localRotation = Quaternion.Euler(0,0,angle);

で角度が変更出来る