facebook twitter hatena line email

「Unity/Csharp/mesh」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(ページの作成:「#新規でGameObjectを作成しCanvasに追加(ここではRObject) #ヒエラルキーに新規でMaterialを作りUnlit/Colorを選択し色を選択。 PlayScene.cs...」)
 
(単色三角形サンプル)
 
(同じ利用者による、間の2版が非表示)
行1: 行1:
 +
==単色三角形サンプル==
 
#新規でGameObjectを作成しCanvasに追加(ここではRObject)
 
#新規でGameObjectを作成しCanvasに追加(ここではRObject)
#ヒエラルキーに新規でMaterialを作りUnlit/Colorを選択し色を選択。
+
#ヒエラルキーに新規でMaterial(ここではBlueMaterial)を作りUnlit/Colorを選択し色を選択。
 
+
#RObjectにPlaySceneRObject.csをつぶける
 +
#Robjectを選択し、プロパティにあるblueMaterialにBlueMaterialをドラッグ
 
PlayScene.cs
 
PlayScene.cs
 
<pre>
 
<pre>
        GameObject rObject = GameObject.Find("RObject");
+
GameObject rObject = GameObject.Find("RObject");
        var mesh = new Mesh();
+
var mesh = new Mesh();
        mesh.vertices = new Vector3[] {
+
mesh.vertices = new Vector3[] {
            new Vector3 (0, 1f),
+
    new Vector3 (0, 1f),
            new Vector3 (1f, -1f),
+
    new Vector3 (1f, -1f),
            new Vector3 (-1f, -1f),
+
    new Vector3 (-1f, -1f),
        };
+
};
        mesh.triangles = new int[] {
+
mesh.triangles = new int[] {
            0, 1, 2
+
    0, 1, 2
        };
+
};
        mesh.RecalculateNormals();
+
mesh.RecalculateNormals();
        MeshFilter filter = rObject.GetComponent<MeshFilter>();
+
MeshFilter filter = rObject.GetComponent<MeshFilter>();
        filter.sharedMesh = mesh;
+
filter.sharedMesh = mesh;
        MeshRenderer renderer = rObject.GetComponent<MeshRenderer>();
+
MeshRenderer renderer = rObject.GetComponent<MeshRenderer>();
        renderer.material = rObject.GetComponent<PlaySceneRObject>().redMaterial;
+
renderer.material = rObject.GetComponent<PlaySceneRObject>().redMaterial;
        filter.sharedMesh = mesh;
+
filter.sharedMesh = mesh;
 
</pre>
 
</pre>
  
行39: 行41:
  
  
==参考==
+
===参考===
 
http://ftvoid.com/blog/post/800
 
http://ftvoid.com/blog/post/800
  
 
https://www.shibuya24.info/entry/2015/11/29/180748
 
https://www.shibuya24.info/entry/2015/11/29/180748
 +
 +
==座標==
 +
xとyが正の場合は右上に向かって伸びる
 +
<pre>
 +
mesh.vertices = new Vector3[] {
 +
            new Vector3 (0f, 0f),
 +
            new Vector3 (1f, 1.1f),
 +
            new Vector3 (1f, 1f),
 +
        };
 +
</pre>

2020年9月15日 (火) 11:16時点における最新版

単色三角形サンプル

  1. 新規でGameObjectを作成しCanvasに追加(ここではRObject)
  2. ヒエラルキーに新規でMaterial(ここではBlueMaterial)を作りUnlit/Colorを選択し色を選択。
  3. RObjectにPlaySceneRObject.csをつぶける
  4. Robjectを選択し、プロパティにあるblueMaterialにBlueMaterialをドラッグ

PlayScene.cs

GameObject rObject = GameObject.Find("RObject");
var mesh = new Mesh();
mesh.vertices = new Vector3[] {
    new Vector3 (0, 1f),
    new Vector3 (1f, -1f),
    new Vector3 (-1f, -1f),
};
mesh.triangles = new int[] {
    0, 1, 2
};
mesh.RecalculateNormals();
MeshFilter filter = rObject.GetComponent<MeshFilter>();
filter.sharedMesh = mesh;
MeshRenderer renderer = rObject.GetComponent<MeshRenderer>();
renderer.material = rObject.GetComponent<PlaySceneRObject>().redMaterial;
filter.sharedMesh = mesh;

PlaySceneRObject.cs

public class PlaySceneRObject : MonoBehaviour
{
    public Material blackMaterial;
    public Material blueMaterial;
    public Material greenMaterial;
    public Material orangeMaterial;
    public Material pinkMaterial;
    public Material purpleMaterial;
    public Material redMaterial;
    public Material whiteMaterial;
    public Material yellowMaterial;
}


参考

http://ftvoid.com/blog/post/800

https://www.shibuya24.info/entry/2015/11/29/180748

座標

xとyが正の場合は右上に向かって伸びる

mesh.vertices = new Vector3[] {
            new Vector3 (0f, 0f),
            new Vector3 (1f, 1.1f),
            new Vector3 (1f, 1f),
        };