クリアメモリ

プログラミングやモーショングラフィックス、便利なアプリケーションなど雑多に記録するブログ

Unityメモ書き

f:id:clrmemory:20170717012305j:plain

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

 

新着記事