Unityで画面をクリックすればボールに前向きの力が加わるボーリングを作った。
ピンモデルの作成
まず、無料の3DCGツールである、Blenderを使い、ボーリングのピンを作ります。
モデルが完成したら、fbxファイルとしてエクスポートします。
ボーリングの作成
Unityのプロジェクトを作成し、ピンファイルをAssetsに入れます。
次にピンを配置します。
ピンのInspectorのAddComponentからBoxColliderとRigidbodyを導入します。
BoxColliderは大きさをピンに合わせ、RigidbodyはUse Gravityにチェックが入っていることを確認してください。
また、CreateからPhysicsMaterialを作成し、DynamicFrictionに反発係数を入力します。
ピンのBoxColliderのマテリアルにPhysicsMaterialを割り当てます。これによってピンが地面に当たったときに跳ねるようになります。
ピンをAssetsに持っていき、Prefab化し、Prefabからボーリングの形になるようにピンを配置します。
今度はCreateからterrainとSphereを作成し、ボーリングに合うようにサイズと位置の調整をします。
SphereのAddComponentからC#スクリプトを作成します。
スクリプトに中身がGetComponent<Rigidbody>().AddForce(dir);となる関数を作成します。これは特定の行動によって”ボールに力が加わる”ようになる関数です。
void Update()内に「もしマウスがクリックされたら"ボールに力が加わる関数"を入力する」というスクリプトを書きます。関数のカッコ内(引数)にはnew Vector3(x,y,z)を使い、x,y,zにそれぞれ加えたい力の数値を入れます。
このスクリプトがうまく書ければクリックするたびにボールに加わる力が増していくようになります。
今度はSphereの投げる位置を左右に移動させるスクリプトを書いていきます。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class shootPosition : MonoBehaviour {
float speed = 0.3f;
void Update () {
float dz = Input.GetAxis("Horizontal"); float z = dz * speed; transform.Translate(0, 0, z);
}
}
左右の矢印キーを押すことで0.3fのスピードでボールを左右に移動させるスクリプトです。
スクリプトがうまくかけたら一端Sceneを保存しましょう。
最後にピンやボールの配置をもとに戻すボタンを作成します。
GameObjectのUIからButtonを配置し、位置の調整をします。
Buttonのテキストを変更し、ButtonにもC#スクリプトを作成します。
public void ButtonClicked()
{
SceneManager.LoadScene(SceneManager.GetActiveScene().name);
}
このスクリプトはボタンが押されたら現在のSceneをリロードするというコードです。
これによってボタンを押したときにピンとボールが初めの位置に戻るようになります。
あとは重さを調節すれば完成です。
これでUnityで簡単なボーリングゲームが作成できるはずです。
良いPCライフを