
Unityで学んだことを軽くメモ書き。
この記事は、Unityに関することを記事にする前に、とりあえずメモっておくための記事です。
Mathf
Mathf.Abs(x);
xの絶対値を返す。
Mathf.Sign(x);
正、負を判定する。正なら1負なら0を返す。
Mathf.RoundToInt(float x);
float型のxを四捨五入してうけとる。
もし小数点第一のあたいが「.5」だった場合、隅数の方になる。
10.5なら10になり、11.5だと12になる。
event.delta;
最後のイベントに比べてマウスの相対的な動きを返す。
Transform
localScale
オブジェクトの大きさを変えるときに使う。
lossyScale
localScaleと同じでオブジェクトの大きさを受けるのだが、lossyScaleにすることで親オブジェクトに影響されない大きさを取得できる。
lossyScaleは読み取り専用であり、値を変更することはできない。
SetParent( x )
GameObjectの親子関係を作ることができる。
obj.transform.SetParent(x)と記述した場合、「X > obj」になる。
Rect
ScrollRect.StopMovement();
スクロールビューの動きを止める。
new RectOffset( );
オフセットがついたRectを作成する。
RectOffset(int left, int right, int top, int bottom);
RectTransform.sizeDelta;
アンカー間の距離と比較したRectTransformのサイズ
例;
RectTransform rectTransform = GetComponent<RectTransform>();
Vector2 sizeDelta = RectTransform.sizeDelta;
sizeDelta.y = 10;
rectTransform.anchoredPosition = sizeDelta;
RectTransform.content
ScrollRectの「content」項目のオブジェクトを指定できる。
onValueChanged
スライダーの値が変わったときに実行される。
.AddListener
Slider.onValueChanged.AddListener(change);
のように使われ、「スライダーの値が変わったらchangeを呼ぶ」というような処理になる。
Animation
new Keyframe( );
Keyframe(time, value, inTangent, outTangent);
time…キーフレームの時間を設定
value…キーフレームでのカーブ値を設定。
inTangent…前のキーフレームからこのキーフレームに近づく時の接線を設定
outTangent…次のキーフレームに向かってキーフレームを離れる際の接線を設定
new AnimationCurve();
AnimationCurveを作成する
AnimationCurve(key1, key2)とすると、key1からkey2までのアニメーションになる。
animationCurve.Evaluate(float time);
timeのカーブを評価する。
Resources
アセットなどのオブジェクトにアクセスするときに使われる。
.Load
パスを指定し、Resourceフォルダ内のアセットをロードする。
.LoadAll
Resourceフォルダ内のフォルダーのパスを指定し、その全てをロードする
List
List<>
using System.Collections.Generic;をコードの頭に追加しなければ使えない。
private List<GameObject> xxx=new List<GameObject>();が基本形。
GameObjectではなくint型やfloat型にしたい時はList<int>やList<float>のようにすれば良い。
ListにGameObjectを追加したい時は「xxx.add(gameObject)」で追加。アクセスする時はxxx[i]でできる。
xxx.Countとすると「Listの要素数」を数えることができる。
削除したい時はList.RemoveAt(i)で指定する。
LinkedList<T>
private LinkedList<XXX<T>> link = new LinkedList<XXX<T>>( );
のような使い方をすることで、linkにXXX<T>を持たせることができる。
XXX<T>を頻繁に呼び出すときなどに効果的。
LinkedList.AddLast()
末尾に指定した値を含む項目を追加してLinkに追加する
a1
a2
a3
のようにしたいときに使う。
LinkedListNode
LinkedList<T>にあるノードを表す。
.Next -> 次のノード
.Previous -> 前のノード
.Value -> ノードの値
iTween
iTweenを使うときは初めにAssetStoreから「iTween」をインポートしておく必要がある。
MoveTo
オブジェクトを動かす。
iTween.MoveTo(gameObject, iTween.Hash(“x”, 5, “time”, 3));
にすると「3秒でxが5になるまで動く」という処理をする。
ScaleTo
オブジェクトの大きさを変更する。
iTween.ScaleTo(gameObject, iTween.Hash(“x”,2, “y”,2, “z”,2, “time”, 3));
3秒で1返2の立方体にする。
RotateTo
回転させる
iTween.RotateTo(gameObject, iTween.Hash(“x”,90, “time”, 3));
3秒でx方向に90度回転させる
Hash
iTweenのアニメーションにパラメータを渡す。
“from”…アニメーション前の値
“to”…アニメーション完了後の値
“time”…アニメーション完了にかかる時間
“delay”…アニメーション開始時に遅延させる
“easetype”…イージング(だんだん加速や減速)を指定
“onupdate”…アニメーション実行中
“onupdatetarget”…onupdateを実装しているオブジェクト
“oncomplete”…アニメーション終了時
“oncompletetarget”…oncompleteを実装しているオブジェクト
その他
GetComponent<>();
GetComponentを毎回処理してしまうと重くなってしまうので、Start( )などで定義してしまった方が良い。
//例
SpriteRenderer Test;
Start(){
Test = GetComponent();
}
[SerializeField]
privateをInspectorビューから表示できるようにする。
ouy
outを使うことで引数を変数として出力することができる。
例:
Vector2 pos;
xxx.ScreenPointToWorldPointInRectangle(a, b, c, out pos);
d.transform.position = pos;
ドラッグ
//一定以上の速度でドラッグしていたら1ページ進める
if(page == prevPage && Mathf.Abs(eventData.delta.x <= 4)
{
CachedScrollRect.content.anchoredPosition +=
new vector2(eventData.delta.x, 0.0f);
page += (int)Mathf.Sign(-eventData.delta.x);
}
transform.SetAsLastSibling( );
GameObjectの表示順を変更する。
SetAsLastSibling -> 最前面に表示。
SetAsFirstSibling -> 最奥に表示。
SetSiblingIndex(xxx) -> 表示順をxxxに変更
blocksRaycasts
レイキャストをブロックする。
CanvasGroup.blocksRaycasts = falseのようにするとブロックさせないようにもできる。
as
型変換に使う。
GameObject obj = Instantiate(a) as GameObject;
のようにすることで、GameObject型を指定することができる。
Dictionary
Dictionary<string, string> dictionary =
newDictionary<string, string>(){
{"A", "1"},
{"B", "2"},
{"C", "3"}
};
UnityでDictionaryを使う場合は「using System.Collections.Generic;」が必要。
ContainsKey( x )
xが格納されているか確認する。
例:if(xxx.ContainsKey(path)){ }
A < B ? 1 : -1;
A < Bがtrueだったら「1」、falseだったら「-1」になる。