Unityでゲーム、アプリ開発

Unityで初めてゲームやアプリを作る人のための支援ブログです。

Unity ボールを吸い込んで止まるオブジェクトを作ってみよう! 初心者編25

今回は、ボールが吸い込むオブジェクトに触れたら吸い込まれて
速度を遅くして中心に来るようにする方法です!


ボールを吸い込んで止まるオブジェクトを作ってみよう!

f:id:Phoenix9056:20200505191410p:plain

※前回の続きになりますが、スクリプト自体前回の記事を見なくても
参考にはなりますが動かすボールが必要な方は前回の記事を参考にしてください。

www.unityprogram.info


f:id:Phoenix9056:20200505193011p:plain

まず、hierarchy内にある①の+⇨3D Object⇨Sphereを選択して
名前をInspector よりHoleに変更して②のように作成します。

Inspector内にあるTransform⇨Scaleの③Yの値を0.01に変更して
薄い円盤状に形を変更しましょう。

次にSphere Colliderの中にある④のIs Triggerのチェックを入れて
オブジェクトがコライダーに衝突しないようにします。

InspectorAsset内で右クリック⇨Create⇨C# Scriptを作成して
名前をHoleObjectにして⑤のように作成します。
※次のコードをコピー&ペーストするか同じ記述にしてください。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class HoleObject : MonoBehaviour
{
    public GameObject boll;

    private void OnTriggerStay(Collider other)
    {
        Rigidbody rigidbody = other.gameObject.GetComponent<Rigidbody>();

        Vector3 vector3 = transform.position - other.gameObject.transform.position;
        vector3.Normalize();

        if (other.gameObject == boll) { 

        rigidbody.velocity *= 0.8f;

        rigidbody.AddForce(vector3 * rigidbody.mass * 20.0f);
            } else
        {
            rigidbody.AddForce(-vector3 * rigidbody.mass * 80.0f);
        }
    }
}

出来上がった⑤のスクリプト
Hierarchy内にある②のHoleにドラッグ&ドロップしてアタッチしてください。

HoleInspectorに追加されたスクリプト
⑦のBollの所に⑥のSphereもしくは動かすオブジェクトを
ドラッグ&ドロップしてください。

それでは再生してみましょう!

f:id:Phoenix9056:20200505194846g:plain

あなたの愛は受け止めてもらえましたか?

ゲーム作成の時にオブジェクトを力を加えて止めておきたい時や
色んなシーンに使えると思います。
移動させるとある程度で離れていくので良い感じです。

ご視聴ありがとうございました!


今日のゆうきさんのゲーム実況はコチラ!
ホラーが苦手な人でも楽しめるスマホゲーム第五人格!

youtu.be


関連記事

※初心者に向けた基本的な内容の記事は下記カテゴリを参考にしてください。
www.unityprogram.info

※オススメのアセットの紹介は下記カテゴリより。便利なアセットがあります。
www.unityprogram.info

※実際に使ってみたオススメの学習本は下記カテゴリから覗いてみてください。
www.unityprogram.info

※Unityでの学習をしていきたい方は下記カテゴリを参照してください。少し込み入った内容になっています。
www.unityprogram.info

※本格的に3Dゲームを作っていきたい方は下記カテゴリより。
www.unityprogram.info