シェアする

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ビューから表示できるようにする。


out

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

この記事が気に入ったら
いいね ! しよう

Twitter で