【ゲームエンジン】Unityなんでも質問スレpart10at GAMEDEV【ゲームエンジン】Unityなんでも質問スレpart10 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト914:名前は開発中のものです。 23/07/21 10:36:36.04 Z+zOC6cO.net 3の手順だけちょっと複雑になるのでコード置いておきます。(動作確認はしてないのでミスってたらごめんなさい) ------------------------------------------------ 以下はメンバ変数定義に書いてください。 //引き寄せる力 public float intensity = 10; //引き寄せる最大距離 public float maxDistance = 10; //自分のRigidbody public Rigidbody myRigidbody; ------------------------------------------------ 以下はFixedUpdateの中の3の処理(otherRigidbodyは2で取得した相手のRigidbodyが代入されてるものとする) //座標の差分を計算 Vector3 diff = (otherRigidbody.position - myRigidbody.position); //距離を計算 float distance = diff.magnitude; //距離を0~1の範囲で正規化する(ついでに0~1の範囲外を捨てる) float normalizedDistance = Mathf.Clamp01(distance / maxDistance); //近くの時力が強くなるようにしたいので反転する normalizedDistance = 1.0f - normalizedDistance; //磁力は距離の二乗に反比例して減衰する normalizedDistance = normalizedDistance * normalizedDistance; //力の向きを計算 Vector3 direction = diff.normalized; //力を計算する(向き*大きさ) Vector3 force = direction * (normalizedDistance * intensity); どうしても無理ってなったらまた聞いてください。 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch