![](/img/trans.png)
[英]Unity3D how to make an object start moving in an arc or circle using radius?
[英]How to draw circle around an object in unity3d?
我想在场景上绘制一个立方体。 我在unity3d上创建一个项目。 它具有主摄像头和定向灯。 我使用unity gui添加一个空的gameobject。 我创建一个.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();
}
}
此代码有效。 现在,我想使用SetPixel
函数在这个立方体周围绘制具有透视效果的圆。 我该怎么做? 我想创建一个如下视图
1-为什么不创建一个手工制作的多维数据集,为什么不使用原始框并设置大小呢?
2-问题之一是您的“ D”可以不同,具体取决于盒子的旋转角度。
例如,如果您的框为0º,则0º方向上的D将为0.5(从1立方的中心到边界)。 如果您在45º方向上计算D,则sabe框将为0.7(斜边)。
即使您先尝试计算边界,此边界在旋转时也会有所不同。 0º= 0.5、45º = 0.7等等(同样的问题)
达到足够的简单方法(我现在可以想到)是:
创建一个基本立方体并设置所需的比例。 创建一个将代表该圆的平面,并添加一个圆的透明纹理。 将平面(圆)添加为框的子级,同时调整框的大小时,圆将一起调整大小。
抱歉,语法不是我的母语。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.