「適当にプレイヤーを用意して固定した床からベルトコンベヤーに乗ってみたら、
ベルトコンベヤーと一緒に動きはしたものの、乗った瞬間に瞬間移動してしまいました」
と最後に課題を挙げましたが、解決しました。
それもほんの数行の命令で済んだという素敵解決。
まずは、
・動かない床(手前)
・動く床(奥)
を用意します。
動く床に適用しているスクリプトは、前回と同様にこんな感じです。
function FixedUpdate() {次に、Standard Assetsにある「3rd Person Controller」を動かない床の上に配置します↓
// x方向に揺れる
transform.localPosition.x = 3 * Mathf.Sin(Time.time);
}

InspectorとHierarchyウィンドウはこんな感じ↓

3rd Person Controllerオブジェクトに、独自に「Player_Controller.js」を追加しています。
Player_Controller.jsの中身が今回のポイントです。
Player_Controller.jsここでは、
--------------------------------------------------
function OnControllerColliderHit(hit : ControllerColliderHit) {
if (hit.gameObject.name == "BeltConveyor") {
// ベルトコンベヤーに乗ったら
transform.parent = hit.gameObject.transform;
} else {
// ベルトコンベヤーじゃなかったら
transform.parent = null;
}
}
--------------------------------------------------
「キャラクターが動く床に触れたら、動く床の子階層に入れる」
「それ以外に触れたら親子関係を解消する」
という処理を行っています。
これで実行すると、、、
動く床に合わせて

キャラも移動してる!

とういことで、前回のような瞬間移動もなく
無事キャラクターがスムーズに動く床に合わせて動いてくれました。
Hierarchyウィンドウを確認してみると、ちゃんと動く床の階層下に入っていることがわかります↓

解決してよかった。