Amazonプライム感謝祭開催中!セール会場へ

Unity│15分でできる!キャラが触れるとゲームクリアの文字を表示する方法│VRoid

VRoidで作成したキャラクターが特定のオブジェクトに触れた際に、ゲームクリアの文字を表示する手順を解説します。

短いスクリプトを作成するだけで実装できます。

目次

ゴールオブジェクトの作成

  1. Hierarchy上で右クリックし、「3D Object」→「Cube」から球体を作成して適当な大きさに調整します。
  2. Projectウィンドウで右クリックし、「Create」→「Material」を選択してマテリアルを作成します。
  3. マテリアルの設定でShaderを「Particles」→「Alpha Blend」に切り替えて半透明にします。
マテリアルの設定

作成したMaterialを球体にドラッグ&ドロップすると、見た目が反映されます。

マテリアル適用後の見た目

ゴールオブジェクトの設定

ゴールオブジェクトの設定
  1. 作成したオブジェクトを選択し、Sphere Colliderの「Is Trigger」にチェックを入れます。
  2. Inspectorの「Add Component」から「Rigidbody」を検索して追加します。
  3. Rigidbodyの「Use Gravity」のチェックを外します。

キャラの設定

キャラの設定
  1. キャラクターを選択し、InspectorでTagを「Player」に設定します。
  2. Capsule Colliderの「Is Trigger」にチェックを入れます。

テキストの表示

テキストの表示
  1. Hierarchy上で右クリックし、「UI」→「Text」を選択してテキストオブジェクトを作成します。
  2. 作成したオブジェクトの名前を「GoalText」に変更します。
  3. Width、Height、Font Size、Colorなどを変更し、文字の位置と見た目を調整します。
テキストの設定

コードの追加

キャラクターが球体に触れたら文字が表示されるスクリプトをアタッチします。

スクリプトの追加
  1. 球体オブジェクトを選択し、「Add Component」から「New script」を選択します。
  2. 名前を「GameController」と入力し、「Create and Add」をクリックして追加します。
  3. 追加されたGameControllerスクリプトをダブルクリックしてエディタを開きます。
Visual Studioでの編集

以下のコードを記述します。

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

public class GameController : MonoBehaviour
{
    public GameObject GoalText;

    void Start()
    {
        GoalText.SetActive(false);
    }

    void Update()
    {
    }

    private void OnTriggerEnter(Collider collider)
    {
        if (collider.gameObject.tag == "Player")
        {
            GoalText.SetActive(true);
        }
    }
}

Sphereを選択し、InspectorのGameControllerコンポーネントにあるGoal Text欄へ、作成したGoalTextをドラッグ&ドロップで割り当てます。

Goal Textの登録

ゲームプレイテスト

ゲームプレイテスト

再生ボタンを押し、キャラクターを球体に接触させて「Clear!」の文字が表示されれば完了です。

カメラの位置を合わせる際は、Sceneビューで視点を決めた後にカメラを選択し、Ctrl+Shift+Fを押すとSceneビューの視点をカメラに反映できます。

Unityのほかの記事は、まとめからご覧いただけます。

この記事で紹介しているコードは、GitHubのMOTOKI-LLC/cg-method-codeにもまとめています。

Unityの基礎と学習の記事は、ほかにもあります。

まとめ

  • ゴールオブジェクトにIs TriggerをONにしたColliderを設定
  • キャラにPlayerタグを設定
  • OnTriggerEnterでタグを判定してテキストを表示

参考:https://digilab.tech/unityコライダーでゴールを作成する/

よくある質問:キャラが触れるとゲームクリアの文字を表示する

この記事では、何をする方法を紹介していますか?

VRoidで作成したキャラクターが特定のオブジェクトに触れた際に、「Clear!」などのゲームクリアの文字を表示する手順です。短いスクリプトを作成するだけで実装できます。

ゴールになるオブジェクトは、どう作りますか?

Hierarchy上で右クリックして3D Objectから作成し、適当な大きさに調整します。Projectウィンドウでマテリアルを作成し、ShaderをParticlesのAlpha Blendに切り替えて半透明にして、作成したMaterialをオブジェクトにドラッグ&ドロップします。

ゴールオブジェクトには、どんな設定が必要ですか?

オブジェクトを選択し、ColliderのIs Triggerにチェックを入れます。Add ComponentからRigidbodyを検索して追加し、Rigidbodyの「Use Gravity」のチェックを外します。

キャラクター側には、どんな設定が必要ですか?

キャラクターを選択し、InspectorでTagを「Player」に設定します。Capsule ColliderのIs Triggerにもチェックを入れます。

表示する文字は、どう作りますか?

Hierarchy上で右クリックして「UI」→「Text」を選択し、テキストオブジェクトを作成します。名前を「GoalText」に変更し、Width、Height、Font Size、Colorなどを変更して、文字の位置と見た目を調整します。

コードは、どこに付けますか?

ゴールのオブジェクトを選択し、Add Componentから「New script」を選んで、名前を「GameController」と入力して作成します。キャラクターが触れたら文字が表示される仕組みで、記事のまとめでは、OnTriggerEnterでタグを判定してテキストを表示すると説明しています。

動作確認は、どうしますか?

再生ボタンを押し、キャラクターを球体に接触させて、「Clear!」の文字が表示されれば完了です。カメラの位置を合わせるときは、Sceneビューで視点を決めたあとにカメラを選択し、Ctrl+Shift+Fを押すと、Sceneビューの視点をカメラに反映できます。

コードはどこで確認できますか?メニュー名が違うときは?

記事内に掲載しているほか、GitHubのMOTOKI-LLC/cg-method-codeにもまとめています。Unityのバージョンによって、メニューやUIの名称・配置が変わることがあるため、最新の操作手順は、Unityの公式マニュアルで確認してください。

次に学ぶ・作業環境を選ぶ

学習を続けたい方や、作業環境を整えたい方は、目的に合うガイドをご覧ください。

Unityのおすすめ書籍

開発PCの選び方

周辺機器の優先度

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次