だいざえもんの活動記録

なんか色々なさむしんぐ

Unityでボーリングを作った話

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に力を加えるスクリプトを書いていきます。

SphereのAddComponentからC#スクリプトを作成します。

スクリプトに中身がGetComponent<Rigidbody>().AddForce(dir);となる関数を作成します。これは特定の行動によって”ボールに力が加わる”ようになる関数です。

void Update()内に「もしマウスがクリックされたら"ボールに力が加わる関数"を入力する」というスクリプトを書きます。関数のカッコ内(引数)にはnew Vector3(x,y,z)を使い、x,y,zにそれぞれ加えたい力の数値を入れます。

このスクリプトがうまく書ければクリックするたびにボールに加わる力が増していくようになります。

 

今度はSphereの投げる位置を左右に移動させるスクリプトを書いていきます。

同じようにSphereC#スクリプトを作成します。

 

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ライフを