Util
Utilを使うと計算を簡略化や位置の変更などする関数が使えます。
KirinUtilが導入されていない場合導入作業をしてください。
例:BasicSetting(bool _cursor)を使う場合
private void Start(){
Util.BasicSetting(false);
}
アプリの基本的な設定ができます。
_cursor:
[True] 常にカーソルを表示させます。
[False] マウスが動いていないときはカーソルを非表示にします。
アプリの基本的な設定ができます。
screenSize:
アプリの大きさを設定できます。
fullscreen:
[True] フルスクリーンでアプリを表示
[False] screenSizeで指定したサイズでアプリを表示
targetFps:
アプリのFPS(preferredRefreshRate)を設定できます。
_cursor:
[True] 常にカーソルを表示させます。
[False] マウスが動いていないときはカーソルを非表示にします。
int型の配列をランダムに並び替えてint[]で返します。
float型の配列をランダムに並び替えてfloat[]で返します。
string型の配列をランダムに並び替えてstring[]で返します。
Vector3型の配列をランダムに並び替えてVector3[]で返します。
現在の日が指定された期間(_startDateから_endDate)に入っているかどうか判別しboolで返します。 ※_startDate、_endDateで指定した日は期間のうちに含まれます。
_startDate:
期間の始まり日を指定します。(形式:10/4)
_endDate:
期間の終わり日を指定します。(形式:10/4)
// Example
bool flag = Util.DayArea("4/1", "6/10");
nowTimeが指定された期間(startTimeからendTime)に入っているかどうか判別しboolで返します。 ※_startDate、_endDateで指定した時分は期間のうちに含まれます。
startTime:
期間の始まり時分を指定します。(形式:10:4)
_endDate:
期間の終わり時分を指定します。(形式:10:4)
_endDate:
期間の終わり時分を指定します。(形式:10:4)
// Example
bool flag = Util.DayArea("6:0", "15:4", "19:20"); // True
bool flag = Util.DayArea("6:0", "6:0", "15:4"); // True
bool flag = Util.DayArea("6:0", "15:4", "15:4"); // True
bool flag = Util.DayArea("6:0", "15:4", "10:0"); // False
現在の曜日が指定された期間(_startWeekから_endWeek)に入っているかどうか判別しboolで返します。 ※_startWeek、_endWeekで指定した日は期間のうちに含まれます。
_startWeek:
期間の始まり曜日(int)を指定します。
_endWeek:
期間の終わり曜日(int)を指定します。
指定する曜日番号:
0: Sunday
1: Monday
2: Tuesday
3: Wednesday
4: Thursday
5: Friday
6: Saturday
// Example
bool flag = Util.DayArea(0, 6);
指定した位置2点間の角度を返します。
指定した位置3点を結んだ線の角度を返します。
引数で指定した角度を0~360度になるように返します。
// Example
float angle1 = Util.To360Angle(-180); // 180
float angle2 = Util.To360Angle(640); // 280
度からラジアンに変換してfloatで返します。
ラジアンから度に変換してfloatで返します。
指定した桁数にしてstringで返します。
// Example
string num1 = Util.AddZero(1, 3); // 001
string num2 = Util.AddZero(10, 3); // 010
小数点の桁数を揃えます。 ※numが整数だった場合numを返します。 ※四捨五入で桁数を揃えます。
// Example
string num1 = Util.PointAlignment(0.1f, 3); // 0.100
string num2 = Util.PointAlignment(0.1234f, 3); // 0.123
string num3 = Util.PointAlignment(0.05f, 1); // 0.1
指定した小数点何位を四捨五入します。 ※numが整数だった場合numを返します。
// Example
float num1 = Util.PointRound(0.1f, 3); // 0.1
float num2 = Util.PointRound(0.1234f, 3); // 0.123
float num3 = Util.PointRound(0.05f, 1); // 0.1
フレームレートが返ってきます。UGUIのTextを第2引数に指定するとTextで表示もできます。 ※Update()にて使用してください。
calcSpanTime:
フレームレートを計算する間隔(秒)
fpsText:
表示するUGUIのTextを指定します。
// Example
void Update(){
Util.FrameRateUpdate(float calcSpanTime = 1, Text fpsText = null);
}
指定した文字数のランダムな英数字を返します。
// Example
string randomStr = Util.GetRandomString(5); // gQTd1
配列内に指定した文字列がいくつ入っているかカウントをし数を返します。
// Example
string[] str = new string[5] { "abc", "def", "akb", "get", "bbb" };
int num = Util.CountOf("ab", str); // 1
指定したGameObjectのWorld座標をCanvas座標に変換します。
※Canvas > Render Mode > Screen Space - Camera
に指定したCanvasしか動作確認していません。
uiCamera:
変換したいターゲットのCanvasを映しているCameraを指定します。
worldCamera:
targetObjを映しているCameraを指定します。
canvas:
変換したいターゲットのCanvasを指定します。
targetObj:
Canvas座標の位置を知りたいターゲットのGameObjectを指定します。
指定した位置のWorld座標をCanvas座標に変換します。
※Canvas > Render Mode > Screen Space - Camera
に指定したCanvasしか動作確認していません。
uiCamera:
変換したいターゲットのCanvasを映しているCameraを指定します。
worldCamera:
targetObjを映しているCameraを指定します。
canvas:
変換したいターゲットのCanvasを指定します。
targetObj:
Canvas座標の位置を知りたいターゲットの位置(Vector3)を指定します。
マウス位置をWorld座標に変換します。
camera:
Cameraを指定します。
z:
Z軸の位置を指定します。
canvasPosの位置をCanvas座標からWorld座標に変換します。
camera:
Cameraを指定します。
canvas:
Canvasを指定します。
canvasPos:
Z軸の位置を指定します。
z:
Z軸の位置を指定します。
GameObjectのpositionをXのみ変更します。
GameObjectのpositionをYのみ変更します。
GameObjectのpositionをZのみ変更します。
GameObjectのlocalPositionをXのみ変更します。
GameObjectのlocalPositionをYのみ変更します。
GameObjectのlocalPositionをZのみ変更します。
GameObjectのlocalScaleをX,Y,Z全て指定した値にします。
GameObjectのlocalScaleをXのみ変更します。
GameObjectのlocalScaleをYのみ変更します。
GameObjectのlocalScaleをZのみ変更します。
GameObjectのrotationをXのみ変更します。
GameObjectのrotationをYのみ変更します。
GameObjectのrotationをZのみ変更します。
GameObjectのlocalRotationをXのみ変更します。
GameObjectのlocalRotationをYのみ変更します。
GameObjectのlocalRotationをZのみ変更します。
string中にある<br>
をEnvironment.NewLineにして返します。
// Example
string str = Util.GetLineText("abcd<br>efg");
// abcd
// efg
デバッグ用StopWatch(コードの処理速度を計るためのもの) ※ DebugWatchStop(Text debugText = null)と対で使ってください。
// Example
private IEnumerator DebugWatch() {
Util.DebugWatchStart();
yield return new WaitForSeconds(1.0f);
Util.DebugWatchStop(); // 1290ms
}
デバッグ用StopWatch(コードの処理速度を計るためのもの) DebugWatchStopするとConsoleに時間が表示されます。引数でTextを指定することもできます。 ※ DebugWatchStart()と対で使ってください。 ※ コードサンプルはDebugWatchStart()の項目を見てください。
List(float)中の最大の数を探しそのList番号を返します。
List(int)中の最大の数を探しそのList番号を返します。
List(GameObject)中の最大の位置を探しそのList番号を返します。
thisList:
比較したいList<GameObject>を指定します。
type:
比較したい軸をAxisType型でX, Y, Zで指定します。
isLocal:
[True] localPositionで比較したい場合
[False] positionで比較したい場合
List(float)中の最小の数を探しそのList番号を返します。
List(int)中の最小の数を探しそのList番号を返します。
List(GameObject)中の最小の位置を探しそのList番号を返します。
thisList:
比較したいList<GameObject>を指定します。
type:
比較したい軸をAxisType型でX, Y, Zで指定します。
isLocal:
[True] localPositionで比較したい場合
[False] positionで比較したい場合
obj0とobj1のX軸の中心座標(position)を返します。
obj0とobj1のY軸の中心座標(position)を返します。
obj0とobj1のZ軸の中心座標(position)を返します。
obj0とobj1の中心座標(position)を返します。
obj0とobj1のX軸の中心座標(localPosition)を返します。
obj0とobj1のY軸の中心座標(localPosition)を返します。
obj0とobj1のZ軸の中心座標(localPosition)を返します。
obj0とobj1の中心座標(localPosition)を返します。
指定した文字列をSplitして指定した配列の値(int)を返します。
// Example
int id = Util.GetSplitInt("0,man,tokyo,20.5,123456", ",", 0); // 0
指定した文字列をSplitして指定した配列の値(float)を返します。
// Example
float point = Util.GetSplitFloat("0,man,tokyo,20.5,123456", ",", 3); // 20.5
指定した文字列をSplitして指定した配列の値(string)を返します。
// Example
string place = Util.GetSplitString("0,man,tokyo,20.5,123456", ",", 2); // tokyo
指定した文字列をSplitして指定した配列の値(long)を返します。
// Example
long data = Util.GetSplitLong("0,man,tokyo,20.5,123456", ",", 4); // 123456
指定した文字列をSplitしてint[]にして返します。
指定した文字列をSplitしてfloat[]にして返します。
指定した文字列をSplitしてlong[]にして返します。
指定した文字列をSplitしてListにして返します。
指定した文字列をSplitしてListにして返します。
指定した文字列をSplitしてListにして返します。
Listを指定した区切り文字で区切った文字列を返します。
// Example
List<string> dataList = new List<string>();
dataList.Add("a");
dataList.Add("b");
dataList.Add("c");
string str = Util.GetSeparatedString(dataList, ","); // a,b,c
Listを指定した区切り文字で区切った文字列を返します。
// Example
List<int> dataList = new List<int>();
dataList.Add(1);
dataList.Add(2);
dataList.Add(3);
string str = Util.GetSeparatedString(dataList, ","); // 1,2,3
Listを指定した区切り文字で区切った文字列を返します。
// Example
List<float> dataList = new List<float>();
dataList.Add(1.1f);
dataList.Add(2.0f);
dataList.Add(3.0f);
string str = Util.GetSeparatedString(dataList, ","); // 1.1,2,3
idと得点をListで分けて管理しているとき、得点の順を大きい順または小さい順に並び替えたときにそのidも一緒に並び替えをするときに使用する。(主にランキングで使用)
// Example
List<string> idList = new List<string>();
idList.Add("a");
idList.Add("b");
idList.Add("c");
List<float> pointList = new List<float>();
pointList.Add(20);
pointList.Add(10);
pointList.Add(30);
List<OrderData> orders = Util.GetOrderList(idList, pointList, Direction.Up);
for (int i = 0; i < orders.Count; i++) {
Debug.Log(orders[i].id + ": " + orders[i].value);
}
// c: 30
// a: 20
// b: 10
四捨五入してfloatで返します。
// Example
float num1 = Util.Round(0.5f)); // 1.0
四捨五入してintで返します。
// Example
float num1 = Util.RoundToInt(0.5f)); // 1
検索文字がリストにあるかどうかをboolで返します。 ※検索文字と完全一致しているかどうかを判別します。
// Example
List<string> dataList = new List<string>();
dataList.Add("abc");
dataList.Add("def");
dataList.Add("a");
bool exist1 = Util.MatchWord(dataList, "abc"); // True
bool exist2 = Util.MatchWord(dataList, "ab"); // False
該当id検索してリスト番号を返します。
// Example
List<string> dataList = new List<string>();
dataList.Add("abc");
dataList.Add("def");
dataList.Add("a");
int num = Util.GetListNum(dataList, "def"); // 1
Listを指定した場所(localPosition)にX軸に等間隔で並べます。 ※ startXとendXの範囲で中央揃えで表示されます。
objList:
並べたいList<GameObject>を指定します。
startX:
エリアの始まりのX位置を指定します。
endX:
エリアの終わりのX位置を指定します。
posY:
Y位置を指定します。
Listを指定した場所(localPosition)にX軸に等間隔で並べます。 ※ startXとendXの範囲で中央揃えで表示されます。
objList:
並べたいList<GameObject>を指定します。
startX:
エリアの始まりのX位置を指定します。
endX:
エリアの終わりのX位置を指定します。
Listを指定した場所(localPosition)にY軸に等間隔で並べます。 ※ startYとendYの範囲で中央揃えで表示されます。
objList:
並べたいList<GameObject>を指定します。
startY:
エリアの始まりのY位置を指定します。
endY:
エリアの終わりのY位置を指定します。
posY:
Y位置を指定します。
Listを指定した場所(localPosition)にY軸に等間隔で並べます。 ※ startYとendYの範囲で中央揃えで表示されます。
objList:
並べたいList<GameObject>を指定します。
startY:
エリアの始まりのY位置を指定します。
endY:
エリアの終わりのY位置を指定します。
Cameraの前にGameObjectを表示させます。そのGameObjectの位置をVector3で返します。
camera:
対象のカメラを指定します。
distance:
カメラからの距離を指定します。
yFix:
y軸を固定するかどうかを指定します。
yPos:
固定するy位置を指定します。(yFixがTrueのときのみ有効)
void SetObjectInFrontOfCamera(Camera camera, GameObject targetObj, float distance, bool yFix, float yPos = 0, bool cameraDirectionOn = true, bool cameraDirectionXFixOn = false)
Cameraの前にGameObjectを表示させます。
camera:
対象のカメラを指定します。
distance:
カメラからの距離を指定します。
yFix:
y軸を固定するかどうかを指定します。
yPos:
固定するy位置を指定します。(yFixがTrueのときのみ有効)
cameraDirectionOn:
targetObjをカメラの方向に回転させるかどうか。
cameraDirectionXFixOn:
cameraDirectionXFixOn = Trueのときxの回転角度は0となります。(cameraDirectionOnがTrueのときのみ有効)
VerticalLayoutGroupの更新をします。
layoutGroup:
対象のVerticalLayoutGroupを指定します。
HorizontalLayoutGroupの更新をします。
layoutGroup:
対象のHorizontalLayoutGroupを指定します。
文字列の長さをカウントをします。 ※日本語は2, 英数字は1としてカウントします。
// Example
float num1 = Util.TextLengthJPN("あい1234"); // 8
文字列に日本語が入っているかどうかを返します。
// Example
bool exist = Util.IsJPN("あい1234"); // True
現在の位置(nowPos)から指定した距離(distance)だけターゲット(targetPos)の方向に移動した位置を返します。
現在の位置(nowPos)から指定した距離(distance)だけターゲット(targetPos)の方向に移動した位置を返します。