0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

高速化メモ

Last updated at Posted at 2020-07-15

アニメーターの高速化
アニメーターを呼ぶときにそのまま文字列で指定するのではなくハッシュキーに変換してから呼ぶと早くなる

文字列をハッシュに変換する
当たり前だと思われますがhashのほうがはやいのでハッシュに変換するといい
マネージャーを作ってまとめて回せるとなおよい
static readonly int WalkStaticHash = Animator.StringToHash("Walk");

void Start()
{
Animator anim = GetComponent();

//遅いもの
anim.Play("Walk");

//早い
anim.Play(WalkStaticHash);

}

Object型は実際は値型(intなど)を扱うことができないがボックス化によって値型も格納することができる。
int n =10;

//Boxing(ボックス化)
object o=n;

//UnBoxing(ボックス化解除)
n = (int)o;
ボックス化の内容は
まず最初にintを持っているオブジェクトを生成する
その後そのボックスに代入したい値を入れる
最後にボックスをオブジェクトに渡すことで実装している

public class IntBox:object
{
public int Value;
}

void Start()
{
int n =10;

//Boxing(ボックス化)
IntBox box =new IntBox();
box.Value = n;
object o = box;

//UnBoxing(ボックス化解除)
n = ((IntBox)o).Value;

}
回避方法
Textの場合だったらobjectをそのまま使うのではなくToString()メソッドでStringにしてあげることで避けられるだがGCAllocは発生する

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?