功能需求:假设项目中有一个UI公告板的需求,这个公告板的长度或者宽度是固定的。里面有很多带文字的新闻,但是这些个新闻的字数和大小是不固定的,要求模仿自动布局组件,写一个组件满足UI的需求。前置学习(主要学习来自与唐老狮的UGUI课以及自己总结,感兴趣可以自行去购买查看内容)要想完成该功能,首先需要学习已经存在的自动布局组件,了解已经存在的自动布局组件为什么不能满足该需求。Layout Proper            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-31 01:08:56
                            
                                154阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            工具:VS、.2.3f、LuaStudio(方便编写Lua)、SimpleFramework_UGUI-0.3.7.2  Demo介绍如何使用uLua对UI进行热更新 【框架结构介绍】  Editor:一些编辑器扩展的脚本代码 Example:一个热更新例子介绍 Lua:实现热更新的核心lua代码 Source:实现热更新的核心C#代码 StreamingAssets:将生成的AssetBundl            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-27 20:10:55
                            
                                162阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            BUG示例protobuf-lua有个BUG:当import其他proto的消息类型时,会报错假如有两个proto:reward和mail。  其中mail的proto导入了reward的消息类型reward.proto如下:package reward; 
    message Reward
    {
        optional uint32 money = 1;
    }mail.            
                
         
            
            
            
            在Unity项目中,unity会按照脚本在项目中的位置生成四个预定义程序集(Assembly-CSharp-firstpass,Assembly-CSharp-Editor-firstpass,Assembly-CSharp,Assembly-CSharp-Editor),其编译顺序是按插件->工程代码,运行时->Editor规则交错的编译顺序.对于Package的代码,Package            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-08 15:29:59
                            
                                100阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            前言在导入别人插件的时候,常常会发现上面菜单栏中会多出几个菜单,在后来的学习中发现,原来unity还可以自定义特性unity中的特性类分别定义在两个命名空间中。unityEngine 和 unityEditor.AddComponentMenu特性在 UnityEngine中,Unity3D中常用的一些特性定义在UnityEngine中;1:AddComponentMent ,添加 组件            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-08-02 11:42:11
                            
                                155阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            自定义Inspector面板Attribute自定义Inspector使用Attribute实现下面的组件,体验几个Attribute的作用:public class EditorTest : MonoBehaviour
{
    [Header("属性标题")]
    [Tooltip("This is a property.")]
    public int property1;            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-07 09:51:45
                            
                                114阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            自定义风格组件可以设置一组特殊的组件。用来满足系统提供的组件无法满足的需求。  首先在project视图里选择 create ——> GUI Skin ,创建一个自定义皮肤,然后再右侧inspector视图中展开Custom Styles下拉菜单选项。 可直接在size输入框中修改自定义风格组件的数量。本例设置了2个,分别取名为Custom0和Custom1。 然后我们            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-05 15:33:31
                            
                                105阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            Unity 允许用户实现自定义窗口,以实现项目更加灵活且系统的配置。例如关卡编辑器、打包编辑器等等。它是能做出最多自定义功能的,但是实现过程其实也是比较固定的。总得来说自定义窗口最重要的部分其实是窗口内GUI得布局和方法,也就是说你要在窗口里做些什么。窗口类型默认窗口(可与其他窗口合并):适合做编辑器窗口。弹窗 (PopUp):适合做窗口分层。对焦弹窗(DropDown,失去焦点自动关闭):适合提            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-30 17:52:10
                            
                                189阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            最近学习了Unity自定义编辑器窗口,下面简单总结,方便用到时回顾。新建一个脚本:using UnityEngine;
using System.Collections;
using UnityEditor;
/// <summary>
/// 自定义的编辑器窗口
/// </summary>
public class MyWindow : EditorWindow {            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-29 12:47:48
                            
                                148阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            简介Unity2018新增的功能 “包管理器”,相信很多文章都已经转载介绍过了。但是怎么看,里面就是一堆原本在AssetStore里的官方工具包。难道官方为了照顾中国开发者的网络,特地做个简化的AssetStore面板吗?仔细调研了一番,发现这其实是一个“巨大巨大超级超级给力的更新”。众所周知,用 node、python 等进行开发,就免不了 brew, npm, pip 一下。这些语言崛起的非常            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-14 15:38:27
                            
                                68阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
             目录常用rectTransform的api脚本搭建背包全部代码 常用rectTransform的api脚本何为常用?被我碰到那就是常用的RectTransform.anchoredPosition 瞄点的中心点坐标RectTransform.anchorMax 父 RectTransform 中右上角锚定到的标准化位置。RectTransform.anchorMin 父 RectTransfor            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-06-03 11:18:23
                            
                                75阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            前话在许多类型游戏中我们经常会使用到背包,利用背包来设置相应角色属性,多了背包也会让游戏增色拓展不少。  那在Unity3D游戏开发中该如何编写背包系统呢?因为有高人开发了NGUI插件,因此我们进行简单编写代码设置即可实现一个简单的背包功能了。准备工作新建一个工程PackageDemo导入NGUI包(最新版3.9.8版的正版89刀)准备好图片素材,使用NGUI将其打包成图集背包 背包格子 物品 简            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-31 08:15:24
                            
                                60阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
                   Unity中的Shader都是要通过ShaderLab的基本语法进行编写。        一、  下面我们先从Shaderlab基本语法开始入手ShaderLab基本结构大致3个代码块儿(一、二、三)(一) 属性  【Properties】Shader “name”{  &n            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-28 22:19:24
                            
                                276阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            前言借用梦想世界宠物属性图想必大家都在游戏中见过属性图用于展示多种属性的数值,可以较为直观的对比某种属性的缺陷或者是哪种属性有优势。在三维可视化领域也会遇到类似的属性对比,用属性图来展示最为合适。组件效果基础效果效果一效果二效果三效果四效果五组件特点一键创建,无需额外资源超多属性可自定义可跟具需求拓展主要内容组件实现(建造者模式)组件多样化(工厂模式)组件使用详细讲解组件实现(建造者模式)建造者模            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-08-16 17:26:57
                            
                                114阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            前言之前的编写的插件并没有注重基类的搭建,每一次的坐标代码、网格代码都需要在新的工具中重新一次,本篇的新工具条形图是基于SpringGUI基类建造,大幅度降低类似组件的开发速度,开发时间全部集中在个性打造,无需考虑基建(基础坐标,网格等基础设置)问题,详情往下阅读。实现效果单组条形图多组条形图水平方向Inspector主要内容SpringGUI基类的搭建条形图的实现详细设计基类搭建GUI中需要可视            
                
         
            
            
            
            前言之前在项目中多次用到目录树,由于UGUI没有目录树这样组件,需要我们拿基础的UI去拼凑,但是这样拼凑的目录树一般需要制作为预制物,在我们想要迁移到别的工程时,总是因为打包且少资源而产生一些问题。而且很多新手也会遇到自己写的目录树因为逻辑问题只能打开/关闭几个层级,并不是可无限打开关闭的,且容易出现多种Bug。基于这些问题,我们可以基于UGUI的部分源码开发一个目录树组件(UITree),简单易            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-01 18:01:13
                            
                                53阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            1.using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
//窗口类需要继承自EditorWindow
public class MyWindow : EditorWindow
{
    //窗口需要一个打开的方式
    //MenuItem属性会在编            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-11 12:02:10
                            
                                215阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            一、MenuItem:创建菜单项  (1) 描述   MenuItem属性可以让你在主菜单和inspector context菜单中添加菜单项。   MenuItem属性可以将任何static函数转换为菜单命令。只有static函数可以使用MenuItem属性。   创建热键,可以使用以下特殊字符:%(在Windows上表示ctrl,在macOS表示cmd),#(shift)和&(alt)。如果不            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-06-24 06:39:16
                            
                                275阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            一、节点数量我的节点一共接近300个,下图为节点的局部图(一行为一条流程),在编辑和运行时,没发现与节点数量有关的性能问题。网上有人说节点超过xxx个的时候,会出现性能问题,我猜可能不是节点数量的问题,而是脚本逻辑的问题。节点数量与性能的关系,有待后期研究和分析。 二、对Unity工程进行build的时候的注意事项Graph上的每个node,在编辑器下运行一点事都没有,但是在build时            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-07-14 18:33:47
                            
                                40阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            全局光照(GI)是对直接和间接光照进行建模以提供逼真光照效果的一组技术。Unity 有两个全局光照系统,结合了直接光照和间接光照。烘焙全局光照系统包括光照贴图、光照探针和反射探针。所有渲染管线均支持烘焙全局光照 (Baked Global Illumination) 系统。光源模式Realtime 实时光源投射不超过__阴影距离 (Shadow Distance)__ 的阴影。 默认情况下,实时光