线框扇形是用线条拼起来的,实心的扇形的是提前生成好mesh,然后用drawmesh。


using UnityEngine;public static class GizmosTools
{/// <summary>/// 绘制半圆/// </summary>public static void DrawWireSemicircle(Vector3 origin,Vector3 direction,float radius,int angle){DrawWireSemicircle(origin,direction,radius,angle,Vector3.up);}public static void DrawWireSemicircle(Vector3 origin,Vector3 direction,float radius,int angle,Vector3 axis){Vector3 leftdir = Quaternion.AngleAxis(-angle/2, axis)*direction;Vector3 rightdir = Quaternion.AngleAxis(angle/2, axis)*direction;Vector3 currentP = origin + leftdir * radius;Vector3 oldP;if (angle!=360){Gizmos.DrawLine(origin,currentP);}for (int i = 0; i < angle/10; i++){Vector3 dir= Quaternion.AngleAxis(10*i, axis)*leftdir;oldP = currentP;currentP=origin + dir * radius;Gizmos.DrawLine(oldP,currentP);}oldP = currentP;currentP=origin + rightdir * radius;Gizmos.DrawLine(oldP,currentP);if (angle!=360){Gizmos.DrawLine(currentP,origin);}}public static Mesh SemicircleMesh(float radius,int angle,Vector3 axis){Vector3 leftdir = Quaternion.AngleAxis(-angle/2, axis)*Vector3.forward;Vector3 rightdir = Quaternion.AngleAxis(angle/2, axis)*Vector3.forward;int pcount = angle / 10;//顶点Vector3[] vertexs = new Vector3[3+pcount];vertexs[0] = Vector3.zero;int index = 1;vertexs[index] = leftdir * radius;index++;for (int i = 0; i < pcount; i++){Vector3 dir= Quaternion.AngleAxis(10*i, axis)*leftdir;vertexs[index]= dir * radius;index++;}vertexs[index] = rightdir * radius;//三角面int[] triangles=new int[3*(1+pcount)];for (int i = 0; i < 1+pcount; i++){triangles[3 * i] = 0;triangles[3 * i + 1] = i+1;triangles[3 * i + 2] = i+2;}Mesh mesh=new Mesh();mesh.vertices = vertexs;mesh.triangles = triangles;mesh.RecalculateNormals();return mesh;}
}

Unity Gizmos 绘制扇形相关推荐

  1. [Unity]利用Mesh在Unity中绘制扇形图片

    背景 最近碰到个功能, 要画一个扇形图案, 如下图: 美术原图: 需求是这个图形跟随角色, 在角色背后, 并且每个角色的扇形角度可能不同. So, NGUI和UGUI很好用的FilledType是用不 ...

  2. [Unity][UGUI]绘制扇形图形

    绘制扇形图形 的资料 参考资料 1,2 都比较完整 想到一种 使用 UGUI 创建 扇形 的方法 相关资料: 1. [Unity&特效]怎么画圆范围circle range技能指示器skill ...

  3. Unity Gizmos 绘制 Camera 的 视口、视锥和 FOV

    Unity Gizmos 绘制 Camera 的 视口.视锥和 FOV 一.目的 由于开发需要,需要绘制出Camera 的 视口.视锥和 FOV 以便于观察游戏物体与camera之间的一些关系,以利于 ...

  4. [Unity]利用Mesh在Unity中绘制扇形图片2

    之前那篇文章后,和同事又就这个问题讨论了一下,发现,其实不需要那么死心眼画n个三角形,因为图片本身除了圆以外的地方都是透明的, 画出来也没事. 这样的话, 其实可以把正方形的图片分成4个三角形,这样的 ...

  5. Unity 利用Mesh在Unity中绘制扇形图片

    直接上脚本,挂空物体上就行: using UnityEngine; using System.Collections; using System.Collections.Generic; [Requi ...

  6. 【Unity】Unity Gizmos扩展(圆弧、扇形、圆形)

    [Unity]Unity Gizmos扩展(圆弧.扇形.圆形) 使用 UnityEditor.Handles 为Unity Gizmos 实现的扩展: GizmosX.DrawWireArc() :画 ...

  7. Unity Gizmos使用绘制

    前言 我们可以利用Gizmos实现网格绘制.范围绘制等.有助于我们对编辑器工具的开发.如下图. 正文 Gizmos绘制要使用到两个函数,分别是OnDrawGizmos和OnDrawGizmosSele ...

  8. Unity中通过Gizmos绘制OverlapBox

    OverlapBox的绘制问题 我们发现Gizmos没有直接绘制OverlapBox的API,所以只能借助DrawLine来间接绘制OverlapBox,所以首先我们需要计算出Box四个顶点的坐标公式 ...

  9. Unity Gizmos扩展:线框圆

    Unity Gizmos扩展:画一个线框圆 定义 圆由圆心位置与半径决定的 在Unity中画圆,由于需要跟随对象转动而转动,除了圆心位置和半径,还需要提供两个方向向量 有两条线,才有了决定一个面的基础 ...

最新文章

  1. 易生信高级转录组分析和数据可视化-最后一天报名
  2. 不再重复造轮子,AI 给你推荐更好的代码,还没bug
  3. 普华永道的2011年全球信息安全调查
  4. 【Python】0/1背包、动态规划
  5. $digest already in progress 解决办法——续
  6. Delphi-TScreen表示应用程序运行时屏幕的状态
  7. mysql中tinyint、smallint、int、bigint的区别介绍
  8. 如何像Uber一样给工程师派单,解放外包生产力?
  9. android主动显示流程,Activity加载显示基本流程
  10. 功能Java示例 第5部分–将I / O移到外部
  11. java代码中 作用_Java利用开发中代码生成工具的作用
  12. screen 用法汇总
  13. (2022最新)Java毕业设计参考题目-题目新颖(值得收藏)
  14. 最齐全的宋体字体素材,速来收藏
  15. html调用js的方法
  16. Maven POM介绍
  17. 西门子840d备份到u盘_西门子840D数控系统备份及恢复方法(三)
  18. TS OLT Internet业务和组播业务(multicast)配置指导
  19. LightTools 坐标系定义及旋转方向定义
  20. ISA2006禁止BT下载方法

热门文章

  1. 20211015学习总结
  2. 转行大数据分析师后悔了
  3. 网络工程师成长日记439-应届毕业生的优势在哪里?
  4. Androi--Linux下的常用命令行
  5. HTML怎么把文字分栏_如何pdf转换word文字并重新排版格式?
  6. x64 PEB简介 有关PEB的一些函数
  7. 谈谈android数据存储方式
  8. 计算机毕业设计Node.js+Vue酒店客户管理系统(程序+源码+LW+部署)
  9. 智能运维(AIOps)系列之一:个人对智能运维的理解
  10. mysql 重新安装采坑笔记