属性
序章 |
方法 |
注:十字線は通常、画面の中央に配置されるため、画面の(幅/高さ/ 2)が中心点を取得できます | |
画面幅 | Screen.Width |
画面の高さ | Screen.Height |
長方形の幅 | 自分で宣言した変数はここでWに置き換えられます |
長方形の高さ | 自分で宣言した変数は、ここではHに置き換えられます |
正面視距離 | ここでは、自己宣言された変数はDに置き換えられます |
説明図
書き込みプロセス
ダイナミックな十字線が欲しいので、直接写真を貼り付けるのではなく、自分で書く予定です。
- 最初に十字線の幅と高さ、および間隔を宣言し、次に十字線マップを宣言します
- 次に、2つの変数GUIStyle(GUIパラメーターのカスタマイズに使用)とTexture(フロントサイトの背景の補助パラメーター。数値を構成するものとしても理解できます)を宣言します。
- ゲームの開始時にGUIStyleをインスタンス化し、十字線マップをそのnormal.backgroundプロパティに割り当てます。
- GUI.Boxメソッドを使用して、画面の中央に4つの長方形を描画し、十字線を描画します
- Box(Rect、Image、GUIStyle)(UnityドキュメントのGUIStyleの紹介)
- ここでの長方形とは、長方形のフレームを作成することを意味します(座標x、座標y、長方形の幅、長方形の高さ)
- 画像(この方法には実質的な役割はありませんが、この方法を使用する場合は、画像を入力する必要があるため、画像を作成しますが、番号を構成するために割り当てないでください)
- GUIStyle(フロントサイトの設定はこのパラメーターにあります。このパラメーターに値を割り当てない場合は、Unityに付属のGuiStyle設定を使用します)
- ここで静的十字線を宣言します。動的な場合は、特定のアクション中に座標、間隔、幅、高さを変更するだけで十分です。
例
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class FPS_CrossHair : MonoBehaviour
{
[Header("准星的长度")]
public float width;
[Header("准星的高度")]
public float height;
[Header("上下(左右)两条准星之间的距离")]
public float distance;
[Header("准星背景图")]
public Texture2D crosshairTexture;
private GUIStyle lineStyle; // GUI自定义参数
private Texture tex; // 准星背景辅助参数
private void Start()
{
lineStyle = new GUIStyle(); // 游戏开始实例化背景图
lineStyle.normal.background = crosshairTexture; // 将背景图默认背景设为准星背景
}
private void OnGUI()
{
// 左准星
GUI.Box(new Rect(Screen.width / 2 - distance / 2 - width, Screen.height / 2 - height / 2, width, height), tex, lineStyle);
// 右准星
GUI.Box(new Rect(Screen.width / 2 + distance / 2 , Screen.height / 2 - height / 2, width, height), tex, lineStyle);
// 上准星
GUI.Box(new Rect(Screen.width / 2 - height / 2, Screen.height / 2 - distance / 2 - width, height, width), tex, lineStyle);
// 下准星
GUI.Box(new Rect(Screen.width / 2 - height / 2, Screen.height / 2 + distance / 2, height, width), tex,lineStyle);
}
}