###前提・実現したいこと
URL:teratail.com/questions/200541
前回の質問より
作成したベルトコンベアを、prefabにして複数生成する際に、
キャラクター側に加算してる速度をベルトコンベアごとに変えるにはどうしたらいいのでしょうか?
回答よろしくお願いします。
速度の値を正と負で変更し、キャラクターが遅くなったり、早くなったりすることができればと
考えております。
(現在ベルトコンベアの速度を-5fにしています※画像参考)5fに変えればキャラクターが早く移動する挙動になります。
現在の状態
© Unity Technologies Japan/UCL
###該当のソース
※キャラクター側のソース //キャラの移動 rd2D.velocity = new Vector2(Beltspeed + moveSpeed, rd2D.velocity.y); -------------処理(省略)------------------------------------------------ //ベルトコンベアに乗った時 void OnCollisionStay2D(Collision2D col) { if (col.gameObject.tag == "Beltconveyor") { Beltspeed = -5f; } } //ベルトコンベアから離れた時 void OnCollisionExit2D(Collision2D col) { if (col.gameObject.tag == "Beltconveyor") { Beltspeed = 0; } } ``` ###ベルトコンベア側の処理
※ベルトコンベア側はアニメーションの再生・逆再生の処理のみになります。
Animator animator;
public float RegenerationSpeed = -1f; //再生(逆再生)速度の値 void Start() { animator = GetComponent<Animator>(); } void Update() { //angleの値で逆再生・再生アニメーションを行う animator.SetFloat("Speed", RegenerationSpeed); }
###補足情報(言語/FW/ツール等のバージョンなど) Unity 2019.1.6f1 言語:C#
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/07/17 15:58