top of page

モ〇ストっぽいもの作る!!

完成映像↓

1.2Dプロジェクト作成

2.上の画像をダウンロードし、プロジェクトへドラック&ドロップ

3.先ほどドラック&ドロップした画像をSceneへ配置(ドラック&ドロップ)

4.下の画像のように配置し、Add component>Physics2D>Box Collider 2D を壁に付けてあげましょう

5.下の画像をダウンロードし、プロジェクトへドラック&ドロップ

6.5でダウンロードした画像をSceneへ配置(ドラック&ドロップ)

7.6で配置した画像のScaleをXYZ、0.1にする

8.6で配置した画像に、Add component>Physics2D>Box Collider 2D をつけましょう

9.6で配置した画像に、Add component>Physics2D>RigidBody 2D をつけましょう

10.9で付けたRigidbody 2D のGravity Scale を0にしてあげ​ます

11.Tapと言うスクリプトを作ります(C#)

12.作ったらスクリプトを開いて下のスクリプトを書きましょう

public class Tap : MonoBehaviour {

    int onMouseDownFlg;
    Vector2 direction;
    Vector2 mouseDownPoint;
    public GameObject ballObj;
    private float xforce;
    private float yforce;


    void  Start (){
        GetComponent<Rigidbody2D>().isKinematic = true;
        Application.targetFrameRate = 120;
        onMouseDownFlg = 0;
    }

    void  Update (){
        //マウスが押されたとき
        if(Input.GetMouseButtonDown(0)) {
            Vector2 mouseInput = Input.mousePosition;
            Vector2 tapPoint = Camera.main.ScreenToWorldPoint(mouseInput);
            //Collider2D collition2d = Physics2D.OverlapPoint(tapPoint);
            RaycastHit2D hitObject = Physics2D.Raycast(tapPoint, -Vector2.up);

            if (hitObject.collider.gameObject == ballObj) {
                onMouseDownFlg = 1;
                mouseDownPoint = mouseInput;
            }

        }

        if(Input.GetMouseButtonUp(0)){
            if(onMouseDownFlg == 1){
                //マウス,タッチが離されたとき
                GetComponent<Rigidbody2D>().isKinematic = false;
                onMouseDownFlg = 0;
                ballObj.GetComponent<Rigidbody2D>().AddForce(direction);
            }
        }

        //マウスが押されっぱなしのとき
        if(onMouseDownFlg == 1){
            xforce = mouseDownPoint.x - Input.mousePosition.x;
            yforce = mouseDownPoint.y - Input.mousePosition.y;

            if(xforce > 1000) xforce = 1000;
            if(xforce < -1000) xforce = -1000;     if(yforce > 1000) yforce = 1000;
            if(yforce < -1000) yforce = -1000;

            direction = new Vector2(xforce, yforce);

        }

    }
}

 

13.スクリプトを書き終わったら、6で配置した画像にスクリプトをドラック&ドロップ

14.Projectのなかで右クリックし、Create>Physics Material 2Dを追加

15.14で作ったPhysics Material 2DのFriction を 0に、Bounciness を 0.2にしましょう

16.6で配置した画像に付けたBox Collider 2D の Materialに14で作ったPhysics Material 2Dを追加

17.6で配置した画像をインスペクターから見るとTapスクリプトに一つ枠が出来ていると思います、枠にHierarchyにある6で配置した画像をドラック&ドロップしてください

~完成君~おつぽいです~

18.再生するとひっぱった分の力で飛びモ〇ストのように跳ね返るはずです。しかし今の段階ではずっと跳ね返りつずけるので何秒後かに重力をなくした方がいいでしょう。お疲れ様でした!

bottom of page