void DrawLine(Vector3 start, Vector3 end) { if (!beginDraw) return; GL.PushMatrix(); GL.LoadOrtho(); lineMaterial.SetPass(0); GL.Begin(GL.LINES); GL.Vertex3(start.x, start.y, start.z); GL.Vertex3(end.x, end.y, end.z); GL.End(); GL.PopMatrix(); } 1. 2. 3. 4. 5...
Debug.DrawLine(worldPos1,worldPos2,Color.yellow); } 1. 2. 3. 4. (2)Gizmos.Draw OnDrawGizmos /OnDrawGizmosSelected里调用 =2=只在Scene窗口里显示 =3=并且不能设置材质 publicvoidOnDrawGizmosSelected(){ Gizmos.DrawLine(Vector3.zero,newVector3(0,3f,0)); } (3)Graphic.DrawMesh =1=一般在...
这里我创建了个UI,在TestUI上画线,为方便管理,我把LineRenderer放TestUI下了 注册按下、拖拽、释放事件 脚本: usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;usingUnityEngine.UI;publicclassUIDrawLine : MonoBehaviour {publicLineRenderer line;publicCanvas canvas;privatefloatcanvasScaler;/...
1) OnInspectorGUI --> 控制Inspector面板的绘制 如果需要显示默认的Inspcetor,则加一句 DrawDefaultInspector() 就行了 绘制GUI主要依靠几个类: GUI, GUILayout, EditorGUILayout, EditorGUI用于绘制按钮、文字,单选框,滚动条,图片之类的,GUI与Editor大体是一样的 GUIStyle 风格设置 建议可以在需要绘制UI的时候去...
Unity-UI上画线 前⾔ Unity中画线的实现⽅式有很多,如Debug.Draw、Gizmos.Draw、GL等,但是这些都不好在UI上画线。其实通过Line Renderer组件就可以实现在UI上画线的功能。先看⼀下效果图:实现 ⾸先介绍Line Renderer组件,,通过设置组件上Positions来达到画线的功能,⽐如我在随意画⼀下:
从Unity4.6开始,集成了新的UI系统。这篇文章将记录新的UI系统的一些使用技巧,分享给大家,希望大家可以将学到的这些知识应用到自己在做的项目中去。 1、给人物加血条效果 把要挂载的父节点的RectTransform中的锚点设置位buttonLeft。并获得当前的Canvas中的CanvasScaler,计算出缩放因子(比如下面是按照y来进行缩放的) ...
usingUnityEditor;usingUnityEngine;publicclassXLine:XObject{publicColorcolor;publicVector2[]points;publicXLine(XWindowwindow):base(window){}publicoverridevoidOnGUI(){base.OnGUI();Handles.BeginGUI();Handles.color=color;for(inti=0;i<points.Length-1;i++){Handles.DrawLine(points[i],points[i+1]);...
并且只能放在这两个方法内,不能在OnGUI中。 代码语言:javascript 复制 privatevoidOnDrawGizmosSelected(){}privatevoidOnDrawGizmos(){Gizmos.color=Color.red;//绘制线Gizmos.DrawLine(transform.position,transform.position+Vector3.right);//绘制框Gizmos.DrawWireCube(transform.position,newVector3(2,2,2));}...
public override void OnGUI(Rectposition) { // calculate the rect values for where to draw the line in the inspector float lineX = (position.x + (position.width / 2)) - colorSpacer.lineWidth / 2; float lineY = position.y + (colorSpacer.spaceHeight / 2); float lineWidth = colorSpace...
Gizmos.DrawLine(worldCorners[i], worldCorners[(i + 1) % 4]); } } } } } 效果如下: 2、批量修改RaycastTarget using UnityEditor; using UnityEngine.UI; using UnityEngine; public class RaycastTargetChecker : EditorWindow { private MaskableGraphic[] graphics; ...