LineRenderer の Width は widthCurve
という変数で AnimationCurve
になっている
これは Positions の 開始位置から、終了位置までのその点での位置で
AnimationCurve.Evaluate
して Width を計算していると思われる
そのため、Positions の数が AnimationCurve
の Key より少なかった場合
想定と違う Width になる可能性があるので注意が必要になる
また、startWidth
や endWidth
でも変えることができるが
これはすでにある AnimationCurve
を書き換えてしまうので注意が必要
_lineRenderer.startWidth = 0.1f; _lineRenderer.endWidth = 0.1f;
ランタイムでの変更
widthCurve を利用してランタイムで値を変更する場合
for (var i = 0; i < _lineRenderer.widthCurve.length; i++) { _lineRenderer.widthCurve.keys[i].value = i; }
のように Key に対して値を入れても変化しない
そのため、AnimationCurve
のインスタンスを新しく作成する必要がある
var curve = new AnimationCurve(); for (var i = 0; i < _lineRenderer.widthCurve.length; i++) { curve.AddKey(i, i); } _lineRenderer.widthCurve = curve;