Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在unity3d中围绕对象绘制圆?_C#_Unity3d_Drawing - Fatal编程技术网

C# 如何在unity3d中围绕对象绘制圆?

C# 如何在unity3d中围绕对象绘制圆?,c#,unity3d,drawing,C#,Unity3d,Drawing,我想在场景中画一个立方体。我在unity3d上创建了一个项目。它有主摄像机和平行光。我使用unity gui添加了一个空的游戏对象。我创建了一个.cs文件并附加到gameobject。C#文件的内容为: using UnityEngine; using System.Collections; using System.Collections.Generic; /** * Simple example of creating a procedural 6 sided cube */ [Re

我想在场景中画一个立方体。我在unity3d上创建了一个项目。它有主摄像机和平行光。我使用unity gui添加了一个空的游戏对象。我创建了一个
.cs
文件并附加到gameobject。C#文件的内容为:

using UnityEngine; 
using System.Collections;
using System.Collections.Generic;

/**
 * Simple example of creating a procedural 6 sided cube
 */
[RequireComponent (typeof (MeshFilter))] 
[RequireComponent (typeof (MeshRenderer))]
public class test : MonoBehaviour {

void Start () {
    MeshFilter meshFilter = gameObject.GetComponent<MeshFilter>();
    Mesh mesh = new Mesh ();
    meshFilter.mesh = mesh;

    mesh.vertices = new Vector3[]{
        // face 1 (xy plane, z=0)
        new Vector3(0,0,0), 
        new Vector3(1,0,0), 
        new Vector3(1,1,0), 
        new Vector3(0,1,0), 
        // face 2 (zy plane, x=1)
        new Vector3(1,0,0), 
        new Vector3(1,0,1), 
        new Vector3(1,1,1), 
        new Vector3(1,1,0), 
        // face 3 (xy plane, z=1)
        new Vector3(1,0,1), 
        new Vector3(0,0,1), 
        new Vector3(0,1,1), 
        new Vector3(1,1,1), 
        // face 4 (zy plane, x=0)
        new Vector3(0,0,1), 
        new Vector3(0,0,0), 
        new Vector3(0,1,0), 
        new Vector3(0,1,1), 
        // face 5  (zx plane, y=1)
        new Vector3(0,1,0), 
        new Vector3(1,1,0), 
        new Vector3(1,1,1), 
        new Vector3(0,1,1), 
        // face 6 (zx plane, y=0)
        new Vector3(0,0,0), 
        new Vector3(0,0,1), 
        new Vector3(1,0,1), 
        new Vector3(1,0,0), 
    };

    int faces = 6; // here a face = 2 triangles

    List<int> triangles = new List<int>();
    List<Vector2> uvs = new List<Vector2>();

    for (int i = 0; i < faces; i++) {
        int triangleOffset = i*4;
        triangles.Add(0+triangleOffset);
        triangles.Add(2+triangleOffset);
        triangles.Add(1+triangleOffset);

        triangles.Add(0+triangleOffset);
        triangles.Add(3+triangleOffset);
        triangles.Add(2+triangleOffset);

        // same uvs for all faces
        uvs.Add(new Vector2(0,0));
        uvs.Add(new Vector2(1,0));
        uvs.Add(new Vector2(1,1));
        uvs.Add(new Vector2(0,1));
    }

    mesh.triangles = triangles.ToArray();

    mesh.uv = uvs.ToArray();

    GetComponent<Renderer>().material = new Material(Shader.Find("Diffuse"));

    mesh.RecalculateNormals(); 
    mesh.RecalculateBounds (); 
    mesh.Optimize();
} 
}
使用UnityEngine;
使用系统集合;
使用System.Collections.Generic;
/**
*创建程序性6边立方体的简单示例
*/
[要求组件(类型(网状过滤器))]
[RequiredComponent(typeof(MeshRenderer))]
公共课堂测试:单一行为{
无效开始(){
MeshFilter=gameObject.GetComponent();
网格=新网格();
meshFilter.mesh=网格;
mesh.vertices=新矢量3[]{
//面1(xy平面,z=0)
新矢量3(0,0,0),
新矢量3(1,0,0),
新矢量3(1,1,0),
新矢量3(0,1,0),
//面2(zy平面,x=1)
新矢量3(1,0,0),
新矢量3(1,0,1),
新矢量3(1,1,1),
新矢量3(1,1,0),
//面3(xy平面,z=1)
新矢量3(1,0,1),
新矢量3(0,0,1),
新矢量3(0,1,1),
新矢量3(1,1,1),
//面4(zy平面,x=0)
新矢量3(0,0,1),
新矢量3(0,0,0),
新矢量3(0,1,0),
新矢量3(0,1,1),
//面5(zx平面,y=1)
新矢量3(0,1,0),
新矢量3(1,1,0),
新矢量3(1,1,1),
新矢量3(0,1,1),
//面6(zx平面,y=0)
新矢量3(0,0,0),
新矢量3(0,0,1),
新矢量3(1,0,1),
新矢量3(1,0,0),
};
int faces=6;//这里a faces=2个三角形
列表三角形=新列表();
列表UV=新列表();
对于(int i=0;i
这个代码有效。现在,我想使用
SetPixel
函数在这个立方体周围画一个具有透视效果的圆。我怎么做这项工作?我想创建一个视图,如下所示


1-与其创建手工制作的立方体,不如使用一个基本长方体并设置大小

2-问题之一是你的“D”可能不同,取决于盒子的旋转

例如,如果长方体为0º,则0º方向上的D将为0.5(从1个单位立方体的中心到边界)。如果计算45º方向上的D,sabe框将为0.7(使用)

即使尝试先计算边界,此边界也会因旋转而不同。0º=0.5、45º=0.7等等(同样的问题)

简单的解决方法(我现在可以这么想)是:

创建基本立方体并设置所需的比例。 创建表示圆的平面,并添加圆的透明纹理。 将平面(圆)添加为长方体的子对象,调整长方体大小时,圆将一起调整大小


对不起,语法错误,英语不是我的母语。

D
不是一个常数。但我想把立方体放在圆心上。我不使用原始框。我应该创建自己的多维数据集,这是一项任务。