toppers / hakoniwa-unity-simasset-plugin

A plugin for Unity to easily integrate assets into hakoniwa simulation environment.
2 stars 1 forks source link

スイッチングマグホルダーを追加する #18

Closed tmori closed 8 months ago

tmori commented 8 months ago

機能要件

スクリーンショット 2024-03-25 5 48 03

tmori commented 8 months ago

実装方法: Unityで「スイッチングマグホルダー」を用いたドローン物流の荷物脱着デモンストレーションを実現する計画が良く見えてきましたね。指摘されたように、吸着オブジェクトと吸引オブジェクトの両方にRigidbodyとColliderを使用するのは適切なアプローチです。ここで、具体的な実装手順を説明します。

実装手順

  1. 吸着オブジェクトの準備

    • 吸着オブジェクトにRigidbodyコンポーネントを追加します。これにより物理演算が適用されます。
    • Colliderコンポーネント(例えば、SphereCollider)も追加して、物理的な干渉を可能にします。
  2. 吸引オブジェクトの準備

    • 吸引オブジェクトにもRigidbodyを追加します。
    • 干渉用のColliderと、範囲内検出用のCollider(例えば、SphereColliderisTriggertrueに設定)を追加します。干渉用のColliderは物理的な接触を管理し、範囲内検出用のColliderは範囲内にあるオブジェクトを検出するために使います。
  3. スクリプトの作成

    • 吸引オブジェクトにスクリプトを追加し、OnTriggerEnterOnTriggerExitイベントを使って範囲内に入った吸着オブジェクトを検出します。
    • ON指示があった時、範囲内の吸着オブジェクトに対して力を加え、吸引オブジェクトに向かって移動させます。Rigidbody.AddForceTransform.positionを使って、オブジェクトを引き寄せることができます。
    • 吸着オブジェクトが接触したら(例えば、OnCollisionEnterを使用して検出)、接着状態を達成します。必要であれば、吸着オブジェクトのRigidbodyを非アクティブにして動きを停止させることも考えられます。
    • OFF指示によって吸着を解除する際は、吸着オブジェクトのRigidbodyを再びアクティブにして自由に動けるようにします。
  4. 監視機能の実装

    • 吸着状態の監視は、吸引オブジェクトが吸着オブジェクトと接触しているかどうかを常時チェックすることで実現します。接触が確認できれば、吸着状態とみなします。

これらのステップに従って、Unity内で「スイッチングマグホルダー」を用いたドローン物流のデモンストレーションを実現することができます。必要に応じてスクリプトの調整や追加の機能を実装して、目的に合った挙動を達成してください。

tmori commented 8 months ago

実装してみました。

https://github.com/toppers/hakoniwa-unity-simasset-plugin/assets/164193/0ff27ebf-dee2-4a5f-ba01-e7c54a3d202b

tmori commented 8 months ago

TODO事項

tmori commented 8 months ago

PDUデータ型

リクエスト用

状態監視用