Runnerオブジェクトが衝突したときにDOWN(onCollisonEnter)と衝突終了時にUPを生成したプラットフォームプレハブをアニメーション化しようとしています(プラットフォームオブジェクト自体がその位置が変化するため空です)。Unity - プラットフォームをアニメーション化する方法は、Lerpを使用して衝突の入力と終了を上下に移動しますか?
私はUnity, C# - cannot make object move down from current y position ONCE on collision enter? verbatim-ここに私の古い質問に与えられた答えを踏襲しているが、監督としての私のアニメーターでこれを持つにもかかわらず、仕事にアニメーターを使ってアニメーションを取得することはできません。答え
一人私はLerpを使ってコードを使ってプラットフォームのプレハブを完全にアニメーション化することを提案しました。私はLerpを研究しましたが、Down/Idle Down(プラットフォームを停止させる)とUp/Idle Upのための2つの別々の状態が必要なので、私はこれを行う方法を知らない。
Lerpをプログラムで使用してこの効果を達成するにはどうすればよいですか?私が行っている効果を達成することは可能ですか?
ERROR:
編集:私は(デキューその後、エンキュー)私のプラットフォームを起動する方法
:
nextPosition += new Vector3 (
Random.Range (minGap.x, maxGap.x) + scale.x,
Random.Range (minGap.y, maxGap.y),
Random.Range (minGap.z, maxGap.z));
Transform o = objectQueue.Dequeue();
o.localScale = scale;
o.localPosition = position;
//o.localEulerAngles = rotation;
o.gameObject.SetActive (true);
int materialIndex = Random.Range(0, materials.Length);
o.GetComponent<Renderer>().material = materials[materialIndex];
o.GetComponent<Collider>().material = noFrictionMaterial;
platform newScript = new o.GetComponent<platform>(); //getting an error here when I tried to implement your code
objectQueue.Enqueue (o);
if(nextPosition.y < minY){
nextPosition.y = minY + maxGap.y;
}
else if(nextPosition.y > maxY){
nextPosition.y = maxY - maxGap.y;
}
これは、ベクトルは常に、どのようなIべきものですもともと開始時に設定してください(
up = new Vector3 (transform.position.x, transform.position.y, transform.position.z);
down = new Vector3 (transform.position.x, transform.position.y-2f, transform.position.z);
プラットフォームは実際には生成されないので、エラーは本当ですか?手伝って頂けますか?
「Lerp」で上下に移動しますか?たとえば、上下にジャンプします。あなたがしようとしていることを正確に知ることは良いことです。 – Programmer