操作するだけじゃつまらないので、ゴールも設定してみました。#VRoid #Unity pic.twitter.com/Iiesx562vI
— すいみん@CGメソッド (@cg_method) 2018年10月20日
前回、VRoidで作成したキャラを操作できるようにしたので、今回はゴールを作成してキャラが触れたら文字が出るようにしてみました。数行のコードを書くだけのお手軽ゲーム制作です。
目次
ゴールの設定
ゴールオブジェクトの作成
- Hierarchy上で右クリック>3D Object>Cubeから球体を作成。適当な大きさに調整
- Project上で右クリック>Create>Materialからマテリアルを作成。設定はPartiles>Alpha Blendに切り替えて半透明にしました。
- 作成したMaterialを球体にドラッグ&ドロップ。見た目が変化します。
ゴールオブジェクトの設定
- Sphereを選択、Sphere Collierのis Triggerにチェック
-
Add ComponentからRigidbodyを検索し追加。Use Gravityのチェックを外す
キャラの設定
前回の設定の状態からすすめます。以下参考
参考:【Unity】コードを書かずに15分でキャラが走り回り、ジャンプしてカメラも追従する方法
- キャラを選択して TagをPlayerに、Capsule Colliderのis Triggerにチェック
テキストの表示
- Hierarchy上で右クリック>UI>Textを押して、テキストを作成
-
名前を「GoalText」として、Width,Height,Font Size,Colorなど文字位置と見た目を調整
コードの追加
キャラが球体に触れたら文字が表示されるようにします。
- Sphereを選択してAdd ComponentからNew scriptを検索し「GameController」という名前でCreate addして追加。
-
GameControllerの文字をダブルクリックするとVisual Studioを起動します。
3箇所にコードを記述します。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class GameController : MonoBehaviour {
public GameObject GoalText;
// Use this for initialization
void Start () {
GoalText.SetActive(false);
}
// Update is called once per frame
void Update () {
}
private void OnTriggerEnter(Collider collider){
if (collider.gameObject.tag == "Player"){
GoalText.SetActive(true);
}
}
}
- 最後に、Sphereを選択して、Goal Text欄が追加されているので、先程作成したTextをドラッグ&ドロップで追加して、表示する文字を登録します。
ゲームプレイテスト
後は再生ボタンを押して、赤い球体に触れてみます。
Clear!文字が表示されるはずです。
※ Unityでカメラを調整するときは、カメラを選択してCtrl+Shift+fを押すとシーンビューとゲームビューがリンクして調整しやすいです。