私はUnity3Dを初めて使用しTexture
ますが、Unity3Dのインスタンスに画像を設定するという小さなタスクを実行したいと思います。実行時にこれを行う方法がわかりません。また、透明度を低く設定する方法も知りたいです。
Texture2Dは必要ありません-必要なのはTextureだけです。私の画像は.png
フォーマットされています。また、ドキュメントディレクトリからこのテクスチャに画像を設定したいと思います。
まず、画像をプロジェクトウィンドウにドロップするだけで、画像をプロジェクトにインポートします。
プロジェクトウィンドウに表示されたら画像を選択し、インスペクターでテクスチャタイプのテクスチャに設定されていることを確認します。
次に、プロジェクトウィンドウを右クリックして、新しいマテリアルを作成します。
次に、画像をこのマテリアルに割り当てます。これを行うには、画像(プロジェクトウィンドウにあります)を新しく作成したマテリアルにドラッグアンドドロップします。Unityの最近のバージョンでは、「Albedo」の左側の正方形にドロップする必要があります。
次に、新しいマテリアルをクリックすると、インスペクターウィンドウに、イメージがアクティブなテクスチャであり、シェーダーがデフォルトで拡散するように設定されていることが表示されます。
透明度をアクティブにするには、インスペクターウィンドウのシェーダードロップダウンメニューをクリックし、[透明/拡散](または目的の外観に応じて任意の透明度オプション)を選択して、シェーダータイプを変更します。
この後、透明度を変更するには、メインの色見本をクリックするだけで、新しいウィンドウが開き、すべての種類のモディファイヤ(赤、緑、青、アルファを調整するための4つの水平スライダー付き)が表示されます。
アルファスライダーを調整して、素材の透明度に影響を与えます。
これで、実行時にマテリアルを呼び出す必要がある場合(たとえば、ゲームオブジェクトに適用されるテクスチャを変更する場合)は、次のコマンドを使用して行うだけです。
renderer.material
これは、スクリプトがアタッチされているgameObjectの素材に影響します。したがって、たとえば、実行時にスクリプトからテクスチャを変更したい場合は、次のように言うことができます。
// Assign the texture exposed in the inspector the renderer's material
var texture : Texture;
renderer.material.mainTexture = texture;
アルファチャンネルを変更したい場合:
renderer.material.color.a = 0 // For example
お役に立てれば。明確にする必要がある場合はお知らせください。
asset
まず、画像をフォルダにインポートする必要があります。
Texture
コードを使用してランタイムにイメージを設定する場合は、以下のコードを使用してください
[SerializeField] private Texture _texture;
[SerializeField] private GameObject _gameObject;
void Start()
{
Material m = GetComponent<MeshRenderer>().material;
m.color = new Color(1,1,1,.5f);
m.mainTexture = _texture;
}
まず、Gameobject
テクスチャを変更するを割り当てます。次に、で画像を割り当て_texture
ます。
次に、そのオブジェクトからを取得し、material
そのオブジェクトにを取得します。assign
_texture
material.mainTexture