unity 编辑器和插件制作(五)

接着前面的继续前行,默默的fighting。

前面讲了,怎么使用摄像机发射线到物体,来触发事件。今天我们 来讲述下怎么去实现一个label.

这个就相对比较简单了,其实我们可以直接使用unity自带得textmesh来实现一个字体,但大多数时候,需要改一些设置,字体大小,材质等等 一些得问题所以我们,最好还是自己写一个脚本来实现一些简单的操作,方便简洁嘛。其实很简单 ,下面我们就开始来实现这些方法。

代码

using UnityEngine;
using System.Collections;

[RequireComponent(typeof(MeshRenderer))]
[ExecuteInEditMode]
public class VKLabel : MonoBehaviour {

	public Font labelFont ;

	TextMesh labelMesh;
	Material labelMat;
	// Use this for initialization
	void Start () {
		//labelFont = new Font ("Arial");

		labelMesh = GetComponent<TextMesh>();
		if(labelMesh == null){
			labelMesh = gameObject.AddComponent<TextMesh>();
		}
		labelFont = labelMesh.font;
		if(labelMesh.text.Length==0){
			labelMesh.text ="VKLabel";
		}
		labelMat = new Material(Shader.Find("VK/VkLabelShader"));
		labelMat.mainTexture = labelMesh.font.material.mainTexture;
		GetComponent<MeshRenderer>().material = labelMat;
		updateTextMesh();
	}

	public void updateTextMesh(){
		if(labelMesh!=null){
			labelMesh.font = labelFont;
		}
		if(labelMat!=null && labelFont!=null){
			if(labelFont.material!=null){
				labelMat.mainTexture = labelFont.material.mainTexture;
			}
			labelMat.color = labelMesh.color;
			GetComponent<MeshRenderer>().material = labelMat;
		}
	}
}

VkLabelShader是自己写得一个shader,你也可以用unity自己带得 GUI得字体shader。为了好控制一些,决定还是用自己得shader了。

Shader "VK/VkLabelShader" {
Properties {
   _MainTex ("Font Texture", 2D) = "white" {}
   _Color ("Text Color", Color) = (1,1,1,1)
} 

SubShader {
   Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" }
   Lighting Off Cull Off ZWrite Off Fog { Mode Off }
   Blend SrcAlpha OneMinusSrcAlpha
   Pass {
      Color [_Color]
      SetTexture [_MainTex] {
         combine primary, texture * primary
      }
   }
}
}

下面我们要做得就是 在写一个简单得label得编辑器类。使label得监视面板更好看点。

这里就不写了 因为我的这个 是没有加任何得东西进行修饰得。

注意下 这里 不要使用 [RequireComponent(typeof(TextMesh))] 添加组件不然,你的TextMesh是没有任何字体得。

要使用unity自带得方法来进行添加组件,这样它会自动帮你,加上unity内置得字体。

unity 编辑器和插件制作(五),布布扣,bubuko.com

时间: 2024-12-12 03:09:51

unity 编辑器和插件制作(五)的相关文章

unity 编辑器和插件制作(四.2)

上次 我们讲述的是编辑器制作,怎么把图片加载到场景中,今天 我们就来讲述下,怎么 制作UIButton以及UIimage的互换. 废话不多说.进入正题. 首先我们要了解 unity的机制,button属性必须有的属性等. 首先 我们先说下 unity的机制: unity中检测点击事件,使用NGUI的可能知道,NGUI使用的就是SendMessage的方式来进行事件的传递.没错,这也是 unity最为简便的方式, (要注意一个问题哦,这个方式 如果 你要使用 大于 万次循环的话 会有延迟的哦,一般

unity编辑器和插件的制作(四.1)

好久没有更新,有些急事终于处理完了,接着更新博客! 废话不多说,接着上面的讲,今天我们来接着讲述. 前面说到 怎么去建立一个自己 ,用代码绘制一个色块,今天我们来讲述下,怎么绘制一个图片在场景里面. 首先 我们先做下图片的功课. 在unity中图片的种类分了很多,默认是:Texture, 还有其他的一些属性. 有些人可以会遇到 我放进去的素材为什么编译之后会变模糊那,这是由于,在unity中你没有修改图片的属性,导致的. 在 texture模式下, 我们来分析下这种图片的属性, wrap mod

unity编辑器和插件(三)

接下来 我就开始正规的编辑器和插件的制作. 我这里是按照 IOS android的 控件为例子模板.来制作 一套使用 unity书写的控件. 好首先我们来想下  IOS 和android的 控件都是以四边形基础的. SO, 接下来 我们来转像unity,在unity中 我们怎么去建立一个四边形那, 依照图形绘制的原理.三点一面的理论.我们可以使用6个点来建立一个两三角形组成的四边形. 我们先学会怎么去绘制一个view,也就是简单的一个色面. 我们知道 unity中得面也是采取这种的绘制方法,绘制

unity编辑器xml数据库插件

unity编辑器xml数据库插件 程序和数据分离的意义我就不多说了,大家自己脑补或者百度.在使用unity开发时,数据的调试是非常频繁和重要的.我们可以制作一个简单的编辑器插件,将数据显示在Inspector面板上,并进行编辑操作.这样测试人员就可以非常方便的管理测试数据了. 需求很简单,具体的效果是,能读取资源内的类,将其属性显示在面板上,可以对此进行增删改查的操作.如下图所示(对象组,相当于数据库所有的表.对象,相当于表的所有记录). 当需要创建一条新记录的时候,先填上主键,然后点击创建按钮

Unity KGFMapSystem插件制作小地图

KGFMapSystem版本:2.3 在我们开发游戏或者虚拟现实中,一般都会用到小地图,如果要我们去写小地图,可以用到unity 3d中就有一个插件,是专门开发小地图用的,这个插件就是KGFMapSystem.这个是它的官网:http://www.kolmich.at/documentation/ 还有一个介绍用KGFMapSystem制作小地图的台湾网站,内容比较详细:http://www.cg.com.tw/KGFMapSystem/Content/KGFMapSystem_001.asp

Unity编辑器扩展chapter1

Unity编辑器扩展chapter1 unity通过提供EditorScript API 的方式为我们提供了方便强大的编辑器扩展途径.学好这一部分可以使我们学会编写一些工具来提高效率,甚至可以自制一些小的插件应用的项目工程中去,达到复用的目的.今天首先创建一个新场景生成的菜单项,生成的场景已经绑定好需要的游戏对象及脚本. Tips:1.官方API 2.编辑器扩展脚本都需放在Editor文件夹下,Editor的层级和数目没有要求 EditorUtil.cs :编辑器扩展类,向外部提供编辑器扩展方法

xcode插件制作

Xcode  插件制作入门 对于 Xcode 5,本文有些地方显得过时了.Xcode 5 现在已经全面转向了 ARC,因此在插件初始化设置方面其实有所改变.另外由于一大批优秀插件的带动(可以参看文章底部链接),很多大神们逐渐加入了插件开发的行列,因此,一个简单的 Template 就显得很必要了.在 Github 上的这个 repo 里,包含了一个 Xcode 5 的插件的 Template 工程,省去了每次从头开始建立插件工程的麻烦,大家可以直接下载使用. 另外值得一提的是,在 Xcode 5

【VR】Leap Motion 官网文档 Unity资源与插件

前言: Leap Motion的官网文档已经有不少的热心网友参与了翻译,但没有覆盖官网文档的全部. 为迎合Unity VR的热潮与大家的学习需要,本博客将推出针对Unity方向的官方文档翻译系列. 本篇首先对Leap Motion所提供的Unity资源与插件进行概述. 英文原文网址:https://developer.leapmotion.com/documentation/unity/index.html 译文首发&持续更新:http://blog.csdn.net/duzixi Leap M

关于Unity中DOTween插件的使用(专题一)

DOTween flash里面的一个概念叫补间动画,DOTween就是干这个事情的. 补间动画:在1秒钟之内从A点移动到B点,在这个之间会把动画补间补好. 当我们安装好DOTween后,它就会提供很多补间的功能方便我们使用.当我们安装了这个插件以后,我们就可以快速使用代码来生成补间动画. 例子:赛车选择界面,旋转赛车后有一个慢慢回弹的动画效果. 安装DOTween1: 去网站http://dotween.demigiant.com/getstarted.php下载2: 将DOTween解压后复制