不对之处,敬请谅解。

1.圆内接正七边形半径

public static float r = 10;

2.存储七个顶点的值
Vector3[] ar = new Vector3[7];

3.圆心角
static float circleAngle = 360 / 7*Mathf.PI/180;

static float ca3 =2 * circleAngle-90*Mathf.PI/180;//第三个顶点的夹角

图示:

4.计算顶点坐标

static float a2y =Mathf.Cos(circleAngle) * r;
static float a2x = Mathf.Sin(circleAngle) * r;

static float a3x = Mathf.Cos(ca3) * r;
static float a3y = Mathf.Sin(ca3) * r;

static float a4x = Mathf.Sin(circleAngle / 2) * r;
static float a4y = Mathf.Cos(circleAngle / 2) * r;

5.对顶点赋值

Vector3 a1 = new Vector3(0, r, 0);
Vector3 a2 = new Vector3(a2x, a2y, 0);
Vector3 a3 = new Vector3(a3x, -a3y, 0);
Vector3 a4 = new Vector3(a4x, -a4y, 0);
Vector3 a5 = new Vector3(-a4x, -a4y, 0);
Vector3 a6 = new Vector3(-a3x, -a3y, 0);
Vector3 a7 = new Vector3(-a2x, a2y, 0);

7.初始化顶点
void Start()
{

ar[0] = a1;
ar[1] = a2;
ar[2] = a3;
ar[3] = a4;
ar[4] = a5;
ar[5] = a6;
ar[6] = a7;
}
8.更新物体位置
void Update()
{

if (i<7)//当循环一圈后置为零
{
this.transform.Translate(ar[i].x, ar[i].y, 0);
}
else
{
i = 0;
}

}

Unity3d 物体沿着正七边形轨迹移动的更多相关文章

  1. Unity3d让某个物体一直正对着相机

    //将以下代码绑定到相机上 using UnityEngine; using System.Collections;   public class LookatScipt : MonoBehaviou ...

  2. Unity3D 物体移动方式

    1. 简介 在Unity3D中,有多种方式可以改变物体的坐标,实现移动的目的,其本质是每帧修改物体的position. 2. 通过Transform组件移动物体 Transform 组件用于描述物体在 ...

  3. Unity3D 物体移动方法总结

    1. 简介 在Unity3D中,有多种方式可以改变物体的坐标,实现移动的目的,其本质是每帧修改物体的position. 2. 通过Transform组件移动物体 Transform 组件用于描述物体在 ...

  4. Unity3D 物体移动方式总结(转)

    1. 简介 在unity3d中,有多种方式可以改变物体的坐标,实现移动的目的,其本质是每帧修改物体的position. 2. 通过Transform组件移动物体 Transform 组件用于描述物体在 ...

  5. 3.Unity3d物体操作常用按键

    新建一个cube物体.在unity3d界面左上角可以看到红色下划线的五个图标(下面用图标1到5数字表示),分别对应不同功能,这些功能操作物体很常用.下面用cube物体的操作来演示这几个功能. 1.按Q ...

  6. Unity3D 物体跟随鼠标旋转

    float speed=1000f; void Update () { if (Input.GetMouseButton (0)) { transform.Rotate (0,-Input.GetAx ...

  7. Unity3d物体模型(实现旋转缩放平移自动旋转)

    基本功能实现:物体通过鼠标左键上下移动,中间键缩放.右键旋转,30秒没操作,物体自动旋转 实例代码: using UnityEngine; using System.Collections; publ ...

  8. Unity3D 物体移动到指定点

    transform.position=Vector3.MoveTowards(transform.position , Target.position, speed * Time.deltaTime) ...

  9. Unity3D 物体旋转之Quaternion.Slerp

    实现的功能:1个物体以一定的速度转向目标物体 Quaternion TargetRotation = Quaternion.LookRotation(m_Target.transform.positi ...

随机推荐

  1. JSON.parse() JSON.stringify() eval() jQuery.parseJSON() 的区别

    http://www.jb51.net/article/81880.htm    :   jQuery.parseJSON(jsonString) : 将格式完好的JSON字符串转为与之对应的Java ...

  2. .net webapi项目中支持session

    webapi中默认是不支持session的开启的 需要在Global.asax文件中,添加如下代码 public override void Init() { this.PostAuthenticat ...

  3. hdu1021

    #include <stdio.h> int fib(int m){ int n_2=1,n_1=2,n,i; if(m==0)return 1; if(m==1)return 2; fo ...

  4. 两年后的随笔+this的思考

    恍惚看到自己在博客园的文章,唯一的一篇已经是接近两年前,再看看自己的名字...已然中枪了 从两年前的.net初学者,到现在工作之后阴差阳错转为前端... 两年过去了,现在回想起来,感觉成长的太少... ...

  5. 神州数码品众_Android面试

    1.进程的定义,进程的调度: 2.线程的定义,多线程出错的描述: 3.数组和链表的定义和区别: 4.对链表的反序: 5.tree高度的计算: 6.设计一个存储系统,可以从客户端进行上传文件: 7.从长 ...

  6. 第五十五节,IO多路复用select模块加socket模块,伪多线并发

    IO多路复用select模块加socket模块,伪多线并发,并不是真正的多线程并发,实际通过循环等待还是一个一个处理的 IO多路复用,lo就是文件或数据的输入输出,IO多路复用就是可以多用户操作 IO ...

  7. arttemplate函数摘录

    对artTemplate函数摘录,希望可以用到自己平时的工作中去 var toString = function (value, type) { if (typeof value !== 'strin ...

  8. jquery 画板折叠

    <!doctype html><html lang="en"><head> <meta charset="utf-8" ...

  9. Kettle jdbc连接hive出现问题

    jdbc连接时报如下错误: Error connecting to database [k] : org.pentaho.di.core.exception.KettleDatabaseExcepti ...

  10. 关于mysql中数据类型

    bigint 从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字).存储大小为 8 个字节. bigint ...