Unity Gizmos 绘制扇形
线框扇形是用线条拼起来的,实心的扇形的是提前生成好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 绘制扇形相关推荐
- [Unity]利用Mesh在Unity中绘制扇形图片
背景 最近碰到个功能, 要画一个扇形图案, 如下图: 美术原图: 需求是这个图形跟随角色, 在角色背后, 并且每个角色的扇形角度可能不同. So, NGUI和UGUI很好用的FilledType是用不 ...
- [Unity][UGUI]绘制扇形图形
绘制扇形图形 的资料 参考资料 1,2 都比较完整 想到一种 使用 UGUI 创建 扇形 的方法 相关资料: 1. [Unity&特效]怎么画圆范围circle range技能指示器skill ...
- Unity Gizmos 绘制 Camera 的 视口、视锥和 FOV
Unity Gizmos 绘制 Camera 的 视口.视锥和 FOV 一.目的 由于开发需要,需要绘制出Camera 的 视口.视锥和 FOV 以便于观察游戏物体与camera之间的一些关系,以利于 ...
- [Unity]利用Mesh在Unity中绘制扇形图片2
之前那篇文章后,和同事又就这个问题讨论了一下,发现,其实不需要那么死心眼画n个三角形,因为图片本身除了圆以外的地方都是透明的, 画出来也没事. 这样的话, 其实可以把正方形的图片分成4个三角形,这样的 ...
- Unity 利用Mesh在Unity中绘制扇形图片
直接上脚本,挂空物体上就行: using UnityEngine; using System.Collections; using System.Collections.Generic; [Requi ...
- 【Unity】Unity Gizmos扩展(圆弧、扇形、圆形)
[Unity]Unity Gizmos扩展(圆弧.扇形.圆形) 使用 UnityEditor.Handles 为Unity Gizmos 实现的扩展: GizmosX.DrawWireArc() :画 ...
- Unity Gizmos使用绘制
前言 我们可以利用Gizmos实现网格绘制.范围绘制等.有助于我们对编辑器工具的开发.如下图. 正文 Gizmos绘制要使用到两个函数,分别是OnDrawGizmos和OnDrawGizmosSele ...
- Unity中通过Gizmos绘制OverlapBox
OverlapBox的绘制问题 我们发现Gizmos没有直接绘制OverlapBox的API,所以只能借助DrawLine来间接绘制OverlapBox,所以首先我们需要计算出Box四个顶点的坐标公式 ...
- Unity Gizmos扩展:线框圆
Unity Gizmos扩展:画一个线框圆 定义 圆由圆心位置与半径决定的 在Unity中画圆,由于需要跟随对象转动而转动,除了圆心位置和半径,还需要提供两个方向向量 有两条线,才有了决定一个面的基础 ...
最新文章
- 易生信高级转录组分析和数据可视化-最后一天报名
- 不再重复造轮子,AI 给你推荐更好的代码,还没bug
- 普华永道的2011年全球信息安全调查
- 【Python】0/1背包、动态规划
- $digest already in progress 解决办法——续
- Delphi-TScreen表示应用程序运行时屏幕的状态
- mysql中tinyint、smallint、int、bigint的区别介绍
- 如何像Uber一样给工程师派单,解放外包生产力?
- android主动显示流程,Activity加载显示基本流程
- 功能Java示例 第5部分–将I / O移到外部
- java代码中 作用_Java利用开发中代码生成工具的作用
- screen 用法汇总
- (2022最新)Java毕业设计参考题目-题目新颖(值得收藏)
- 最齐全的宋体字体素材,速来收藏
- html调用js的方法
- Maven POM介绍
- 西门子840d备份到u盘_西门子840D数控系统备份及恢复方法(三)
- TS OLT Internet业务和组播业务(multicast)配置指导
- LightTools 坐标系定义及旋转方向定义
- ISA2006禁止BT下载方法