まず、レンダリングを
アップロードしましょう:(写真はBaiduによって何気なく検索され、単にぼやけていました)
- 平面平面をシーンに配置します。平面を気軽に配置したり、色を変更したり、床としてテクスチャを追加したりできます。
- 新しいキューブを作成します。色を自由に変更して、目を引くようにすることもできます。素敵なレインボーバーを見つけて投稿しました。忘れずに、Rigibodyコンポーネントを追加してください。
- カメラの角度と位置を調整します。オブジェクトの後ろに配置するのが最適です。次のコードを追加します。
カメラ補間フォロー以前の投稿「カメラ補間フォロー」を参照できます。 - ウィンドウの2D表示を調整し、階層に新しいUI→Canvasコンポーネントを作成し、適切な位置に調整し
ます。Canvasで新しいPanelコンポーネントを右クリックし、[ソース画像]でダウンロードしたタコメーター画像を選択します。パネルプロパティの画像コンポーネント、必要に応じて位置、サイズなどを調整します
(ここの画像はJPG形式に変更するのが最適です。つまり、プロジェクトにドロップダウン矢印が表示されるため、パネルで使用できること)
5.パネルの下に空のGameObjectコンポーネントを作成し、下にImageコンポーネントを作成し、色と形状を調整して大まかにポインタを作成し、親子関係の位置を調整して、GameObjectがの中心を中心に回転できるようにします。 dial;
6. GameObjectコードを追加します。モーションコードで呼び出すことができるように、ShowSpeed()はパブリックである必要があります。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Rotate : MonoBehaviour
{
static float minAngle = 0.0f;
static float maxAngle = -180f; //0-180代表表盘旋转的角度
static Rotate thisSpeed0;
// Start is called before the first frame update
void Start()
{
thisSpeed0 = this;
}
// Update is called once per frame
public static void ShowSpeed(float speed, float min, float max)
{
//将速度与指针转动角度对应起来
float ang = Mathf.Lerp(minAngle, maxAngle, Mathf.InverseLerp(min, max, speed));
//添加旋转 可以在ang后乘以个常数用来调节转动效果
thisSpeed0.transform.eulerAngles = new Vector3(0, 0, ang*10f);
}
}
- モーションコードをCubeに追加します(上部のShowSpeed()関数を呼び出す必要があります)。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class move : MonoBehaviour
{
public float speed=0;
float h = 0;
Rigidbody rg;
// Start is called before the first frame update
void Start()
{
rg = this.GetComponent<Rigidbody>();
}
// Update is called once per frame
void Update()
{
float v = Input.GetAxis("Vertical")*0.3f;//垂直轴
h = Input.GetAxis("Horizontal");//水平轴
for (int i = 0 ; i < 10; i++)
{
speed *= v;
movetion();
speed++;
}
movetion();
Rotate.ShowSpeed(rg.velocity.magnitude, 0, 100);
}
private void movetion ()
{
rg.AddForce(h, 0, 2* speed);
}
}
制御コードでは「垂直および水平」が使用されているため、上、下、左、右、またはW、S、A、Dを使用して制御できます。
注:
キューブ内のリジボディコンポーネントの場合、Y軸の垂直方向の動きを制限することをお勧めします。そうしないと、制御できなくなります。