みーのぺーじ

みーが趣味でやっているPCやソフトウェアについて.Python, Javascript, Processing, Unityなど.

動く床の実装

Unity開発で、しばしば困るのが、床が動く場合の処理です。主人公が動く床の上に乗ったら、床と一緒に動くようにしなければいけませんが、みーはこのように実装しました。

  • 床が1フレームで移動したベクトルを取得する
  • 主人公をそのベクトルだけ移動させる

Boo で記述するとこんな感じです。

//動く床のTriggerに対して

import UnityEngine
class floatingIsland (MonoBehaviour): 

    pos as Vector3
    def Start ():
        pass
    
    def Update ():
        pass
    
    def OnTriggerEnter(other as Collider) :
        pos = transform.position
    def OnTriggerStay(other as Collider) :
        other.transform.position += transform.position-pos
        pos = transform.position