アトリエ・エクレア

2DCG&3DCG, プログラミング, 日記などを掲載してます。

Unity スクリプトからのレンダリングソート

Unity スクリプトからのレンダリングソート

メモ

<リファレンス>


<スクリプトからのレンダリングソート>

例)

using UnityEngine;

public class SortTest : MonoBehaviour {
    public string mySortingLayerName = "front";  // "Tags & Layers" のLayer名を使う
    void Start() {
        MeshRenderer renderer = GetComponent<MeshRenderer>();
        if (renderer != null) {
            // renderer.sortingLayerName = "レイヤー名";
            // renderer.sortingOrder = (Order in layerの数値);
            renderer.sortingLayerName = mySortingLayerName;  
        }
    }
}

※スクリプトを設定したオブジェクトだけでなく、相手側にも透明が扱えるシェーダーを要求するっぽい。

  • StandardShader(Rendering Mode : Fade or Transparent)
  • Transparent系シェーダー(Unlit/Transparentなど)
  • Sprite
  • Particles

→ material.renderQueueで順番いじっても同様だった。
→ 対策のひとつ:自作シェーダーでQueueいじる。





Unity メッシュ作成

Unity メッシュ作成

メモ

<Meshクラス>

スクリプトからメッシュの作成や変更をできるようにするクラス


<スクリプトからメッシュの作成>

※裏面は見えないので注意。グルっとまわって確認する。

using UnityEngine;

public class CreateMeshSample : MonoBehaviour {

        void Start() {
                CreateMesh();
        }

        private void CreateMesh() {
                Rect rect = new Rect(3.0f, 10.0f, 20.0f, 30.0f);
                float z = 0.0f;

                // 頂点の配列
                Vector3[] newVertices = new Vector3[] {
                        new Vector3(rect.xMin, rect.yMin, z),
                        new Vector3(rect.xMax, rect.yMin, z),
                        new Vector3(rect.xMax, rect.yMax, z),
                        new Vector3(rect.xMin, rect.yMax, z)
                };

                // UV座標の配列
                Vector2[] newUV = new Vector2[] {
                        new Vector2(0, 0),
                        new Vector2(1, 0),
                        new Vector2(1, 1),
                        new Vector2(0, 1)
                };

                // 三角形の配列 (頂点の配列の、インデックス) ※時計回り指定で、表面になる
                int[] newTriangles = new int[] {
                        0, 1, 2,
                        0, 2, 3
                };

                Mesh mesh = new Mesh();
                GetComponent<MeshFilter>().mesh = mesh;
                mesh.vertices = newVertices;
                mesh.uv = newUV;
                mesh.triangles = newTriangles;
                mesh.name = "MyMesh";

                // 再計算
                //mesh.RecalculateNormals();
                //mesh.RecalculateBounds();
        }
}





Unityの寺子屋 定番スマホゲーム開発入門

Unityの寺子屋 定番スマホゲーム開発入門

いたのくまんぼう (著, 監修), 大槻 有一郎 (著) 2017/8/15 発売予定

↓↓↓これと同じ著者↓↓↓

内容:横スクロールアクションなど。



マイブログへようこそ♪
PLEASANT_DRAGON

2DCG&3DCG,プログラミング,
日記などを掲載中☆

(*´▽`*)コメント大歓迎です☆

最新記事
記事一覧

全ての記事を表示する

カテゴリ
SAI (0)
mi (2)
C (1)
C++ (1)
C# (0)
VBA (0)
月別アーカイブ
最新コメント
RSSリンクの表示
リンク
FC2ブログランキング

FC2Blog Ranking

ピックアップ商品1♪










カレンダー
06 | 2017/07 | 08
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 - - - - -
ブログ内検索フォーム
プロフィール

エクレア

Author:エクレア


  • 2DCG&3DCGの創作活動をしています。

  • SF系のメカが大好物。

アクセスカウンター
Twitter
ピックアップ商品2♪