Unity定制 Image、Text的对象生成
来源:互联网 发布:淘宝购物车删除 编辑:程序博客网 时间:2024/04/28 13:05
2016.4.14
昨天看到 雨凇的 Unity3D研究院之UGUI一个优化效率小技巧: http://www.xuanyusong.com/archives/4006
完善了他所说的代码:
using UnityEngine;using UnityEngine.UI;using System.Collections;using UnityEditor;using UnityEngine.EventSystems;/// <summary>/// 创建 Text、Image 的时候默认不选中 raycastTarget 等/// </summary>public class OverrideCreateUIMenu{ /// <summary> /// 第一次创建UI元素时,没有canvas、EventSystem所有要生成,Canvas作为父节点 /// 之后再空的位置上建UI元素会自动添加到Canvas下 /// 在非UI树下的GameObject上新建UI元素也会 自动添加到Canvas下(默认在UI树下) /// 添加到指定的UI元素下 /// </summary> [MenuItem("GameObject/UI/Image")] static void CreatImages() { var canvasObj = SecurityCheck(); if (!Selection.activeTransform) // 在根目录创建的, 自动移动到 Canvas下 { // Debug.Log("没有选择对象"); Image().transform.SetParent(canvasObj.transform); } else // (Selection.activeTransform) { if (!Selection.activeTransform.GetComponentInParent<Canvas>()) // 没有在UI树下 { Image().transform.SetParent(canvasObj.transform); } else { Image(); } } } private static GameObject Image() { GameObject go = new GameObject("x_Image", typeof(Image)); go.GetComponent<Image>().raycastTarget = false; go.transform.SetParent(Selection.activeTransform); Selection.activeGameObject = go; return go; } // 我们要设置默认字体 [MenuItem("GameObject/UI/Text")] static void CreatTexts() { var canvasObj = SecurityCheck(); if (!Selection.activeTransform) // 在根目录创建的, 自动移动到 Canvas下 { // Debug.Log("没有选择对象"); Text().transform.SetParent(canvasObj.transform); } else // (Selection.activeTransform) { if (!Selection.activeTransform.GetComponentInParent<Canvas>()) // 没有在UI树下 { Text().transform.SetParent(canvasObj.transform); } else { Text(); } } } private static GameObject Text() { GameObject go = new GameObject("x_Text", typeof(Text)); var text = go.GetComponent<Text>(); text.raycastTarget = false; text.font = AssetDatabase.LoadAssetAtPath<Font>("Assets/Arts/Fonts/zh_cn.TTF"); // 默认字体 go.transform.SetParent(Selection.activeTransform); Selection.activeGameObject = go; //go.AddComponent<Outline>(); // 默认添加 附加组件 return go; } // 如果第一次创建UI元素 可能没有 Canvas、EventSystem对象! private static GameObject SecurityCheck() { GameObject canvas; var cc = Object.FindObjectOfType<Canvas>(); if (!cc) { canvas = new GameObject("_Canvas", typeof(Canvas)); } else { canvas = cc.gameObject; } if (!Object.FindObjectOfType<EventSystem>()) { GameObject eventSystem = new GameObject("_EventSystem", typeof(EventSystem)); } return canvas; }}
3 0
- Unity定制 Image、Text的对象生成
- unity-定制自己的编辑器
- Generative Adversarial Text to Image Synthesis --- 根据文字描述生成对应的图片
- Unity UI(四):Text、Image/RawImage和Mask
- Image的生成过程
- Unity对象多个生成
- libgdx的Image对象
- text 类型和image 类型的转换
- text与image字段的转换
- 处理text,ntext,image字段的函数
- MSSQL下,text 、ntext、 image的比较
- Image对象生成Base64位编码
- 重新定制 Unity引擎的Debug 输出
- 重写unity的image,实现图像倾斜
- Unity 动态修改UGUI的Image
- Unity SpriteRender 和Image的区别
- 定制 grub splash image
- yocto定制image包
- LeetCode 284. Peeking Iterator(支持peek的迭代器)
- UEFI引导系统
- 基于Bmob云的同城健身
- MATLAB报错"Integers can only be raised to positive integral powers."
- 不错的衣服搭配网址
- Unity定制 Image、Text的对象生成
- CDISC SDTM SV domain 学习笔记
- 【bzoj1731】【排队布局】【差分约束】
- Cocos2d-JS 事件处理机制
- mfc调用activex
- 详解:Python2中的urllib、urllib2与Python3中的urllib以及第三方模块requests
- 用通俗易懂的大白话讲解Map/Reduce原理
- MFC界面库BCGControlBar新版功能详解三:图表、网格、报表控件
- python 类属性