Unityメモ書き

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」項目のオブジェクトを指定できる。
 
スクリーンショット 2016-04-26 19.51.40
 

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」になる。
 

おすすめの記事