▼そのUnityの作業、依頼しませんか?
2Dゲーム

【Unity2D】オブジェクトをドラッグして動かし、ドロップと同時に重力をつけて落とす方法

Unityでドラッグをしたらオブジェクトを動かす
  • オブジェクトをドラッグして動かしたい!
  • ドロップと同時に重力をつけたい

その悩みを解決します。

【OnMouseDown】と【OnMouseDrag】メソッドを使って実装していきます。

Unityでオブジェクトをドラックして動かし、ドロップと同時に重力をつけて落とす方法

こんな感じになりんす

Unityでドラックして動かし、ドロップ

オブジェクト(スプライト)を自由自在に動かして、ドロップと同時に重力がつき落ちます。

オブジェクトの状態

  • オブジェクトにColliderがアタッチされている
  • オブジェクトにRigidbody2Dがアタッチされている
  • Rigidbody2Dの【Gravity Scale】が0にしている
  • オブジェクトにスクリプトがアタッチされている

この状態にしておいてください。

オブジェクトの状態

Rigidbody2Dの【Gravity Scale】をゼロにしておいてください。

今回はオブジェクトに【BakudanController】スクリプトがアタッチされているので、そのスクリプトを編集していきます。

スクリプト

BakudanController.cs

using UnityEngine;
using System.Collections;

public class BakudanController : MonoBehaviour
{
    Vector3 screenPoint;
    Vector3 offset;

    Rigidbody2D rb;

    void Start()
    {
        rb = this.GetComponent<Rigidbody2D>();
    }

    void OnMouseDown()
    {
        this.screenPoint = Camera.main.WorldToScreenPoint(transform.position);
        this.offset = transform.position - Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPoint.z));
        rb.gravityScale = 0.5f;

    }

    void OnMouseDrag()
    {
        Vector3 currentScreenPoint = new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPoint.z);
        Vector3 currentPosition = Camera.main.ScreenToWorldPoint(currentScreenPoint) + this.offset;
        transform.position = currentPosition;
    }
}

行間おかしくてゴメンなさい。

ドロップするタイミングで【Gravity Scale】を制御してます。

おわりに

スクリプトの説明はのちのち追加していきます。

オブジェクトをドラックして動かし、ドロップと同時に重力をつけて落とす方法でした。

さぎのみや(@saginomiya8)でした。SNSでシェアしてね( ・∇・) 一生無双モードで頑張る。

Unityサンプルゲーム
【Unity2D&3Dサンプルゲーム】動画よりわかりやすく記事でゲームを作ろう【チュートリアル】【Unity2D&3Dサンプルゲーム・チュートリアル】Unityにおいてのサンプルゲームの作り方が書いてある記事って少ないですよね。そこで当サイトUnishar(ユニシャー)が動画よりわかりやすいサンプルゲームを無料で提供します。...
ABOUT ME
さぎのみや
さぎのみや
超書手。現在はUnityメディア「ユニシャー」の運営とゲーム開発がメインです。Unity、ライティング関係のお仕事お待ちしております。 >>詳しいプロフィール >>Amazonほしいものリスト
【Unity3D】新しいサンプルゲーム(チュートリアル)を作りました!!!
Unity有料サンプルゲーム

「Unityで3Dゲームを本格的に作っていきたい!」という人におすすめのチュートリアルとなっています。

画像のようなゲームの作り方を販売しています。色々と応用できるサンプルゲームとなっています。ぜひ、作ってみてください。

詳細
>>【Unity3Dサンプルゲーム・チュートリアル】「フリスビーを犬に届けよ!」の概要

>>BOOTHでこのチュートリアルを見る

【RT・フォローであなたのスキルが上がる】

シェアフォローする

さぎのみやのモチベが上がる

コンテンツの質が上がる

あなたの能力も上がる

あなたの
Twitterでのシェア

であなたの能力が上がります。

>>さぎのみやのツイッター(@saginomiya8)

 

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください