自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

步云端的博客

一个Unity3D新手菜鸟

  • 博客(77)
  • 资源 (12)
  • 收藏
  • 关注

原创 Unity 过场工具(Cutscene)设计(四) ——组件化设计

Unity 过场工具(Cutscene)设计(四) ——组件化设计写到这一篇文章前就开始在考虑如何才能说清楚自己的设计思路,因为后续涉及到编辑器和Runtime框架的实际设计和实现过程,两者之间是互相有设计因果关系的。为了阐述自己的核心设计思路,最终就有了这篇文章。

2023-05-21 15:53:41 851

原创 Unity 过场工具(Cutscene)设计(三)

由于过年来公司的一些事情后准备换工作,到现在才换到下家稳定下来。到动手这篇博客时已经隔了很久好几个月了,后续还是会持续的更新完。

2023-05-07 22:53:44 646

原创 Unity 过场工具(Cutscene)设计(二)

本章主要分析一下过场一般的必要组成元素,以及在Unity中的制作方案

2023-01-16 22:48:50 1093

原创 Unity 过场工具(Cutscene)设计(一)

游戏中通常会涉及到过场内容的制作,从而来进行一些强表现,从而来进行剧情相关的串联,使游戏表现类容更丰富。比较典型的游戏 像原神,天刀等等游戏。

2023-01-15 18:53:53 1488

原创 UIGU源码分析18 :射线

源码18 :射线本来是想把UGUI的各个组件分析完 再看其射线相关的实现,但是除了之前EventSystem有RaycastAll,Graphic里也有很多射线相关的函数,感觉有必要先分析分析。RaycasterManager internal static class RaycasterManager { private static readonly List<BaseRaycaster> s_Raycasters = new List<BaseRay

2022-04-16 23:50:47 663

原创 UIGU源码分析17:Image

源码17:ImageImage可以说是用的最多得UI组件了,相比于RawImage来说也复杂得多public class Image : MaskableGraphic, ISerializationCallbackReceiver, ILayoutElement, ICanvasRaycastFilter{ ... [SerializeField] private Sprite m_Sprite; /// How the I

2022-03-30 22:51:15 528

原创 UIGU源码分析16:RawImage

源码16:RawImage /// <summary> /// Displays a Texture2D for the UI System. /// </summary> /// <remarks> /// If you don't have or don't wish to create an atlas, you can simply use this script to draw a texture. /// Keep

2022-03-19 21:24:01 457

原创 UIGU源码分析15:Mask

源码15:Maskpublic class Mask : UIBehaviour, ICanvasRaycastFilter, IMaterialModifier{ [NonSerialized] private RectTransform m_RectTransform; [SerializeField] private bool m_ShowMaskGraphic = true; ...}Mask 组件继承UIBehaviour 同时要实现两个接口IC

2022-03-19 20:30:15 260

原创 UIGU源码分析14:RectMask2D

源码14:RectMask2D前面分析MaskGraphic得时候提到了裁剪相关,这里就分析一下裁剪者组件RectMask2D public class RectMask2D : UIBehaviour, IClipper, ICanvasRaycastFilter { [NonSerialized] private readonly RectangularVertexClipper m_VertexClipper = new RectangularV

2022-03-19 18:28:49 314

原创 UIGU源码分析13:MaskGraphic

源码13:MaskGraphicpublic abstract class MaskableGraphic : Graphic, IClippable, IMaskable, IMaterialModifier{ ... }继承MaskGraphic 的有Image Text RawImage 基本可以使用显示的UI组件都继承了MaskGraphicMaskableGraphic除了继承Graphic外 还继承了三个接口IClippableIClippable 被裁剪者

2022-03-15 22:33:51 537

原创 UIGU源码分析12:Graphic

源码12:GraphicGrahic是UGUI的核心组件,负责显示图像,继承了UIBehaviour,ICanvasElement。它是一个抽象类,是MaskableGraphic(可遮罩图像)的基类,而后者是RawImage,Image和Text的基类GraphicRegistryGraphicRegistry的作用主要是记录每个Canvas画布上激活的Graphic。public class GraphicRegistry{ private static GraphicRegistry

2022-03-13 22:41:31 952

原创 UIGU源码分析11:Canvas和CanvasUpdateRegistry

源码11:Canvas和CanvasUpdateRegistryRuntime类图CanvasCanvas 画布 UGUI的重要组件。 UGUI源码里并没有给Canvas源码 他是在UnityEngine里,这里反射看下源码。Canvas本身提供给引擎调整的参数是上面那些。基本是调整渲染模式 层级 显示等等。源码里有几个比较重要的属性要记录下 public delegate void WillRenderCanvases(); // 公有事件,在CanvasUpdateRe

2022-03-12 22:48:58 7601

原创 GU源码分析10:InputField

源码10:InputFieldInputField就是输入框 提供给用户输入文字内容的 是一个重要的交互手段。比如常见的用来输入用户名 ,密码等等。 public class InputField : Selectable, IUpdateSelectedHandler, IBeginDragHandler, IDragHandler, IEndDragHandler, IPointerClick

2022-03-09 23:36:18 767

原创 UIGU源码分析9:DropDown

源码9:DropDownDropDwon 主要就是为了实现下拉选择的功能public class Dropdown : Selectable, IPointerClickHandler, ISubmitHandler, ICancelHandler{ ... protected internal class DropdownItem : MonoBehaviour, IPointerEnterHandler, ICancelHandler { //Item显示的文字

2022-03-08 00:00:57 253

原创 UIGU源码分析8:Slider

源码8:Slider public class Slider : Selectable, IDragHandler, IInitializePotentialDragHandler, ICanvasElement { ... [Serializable] /// <summary> /// Event type used by the UI.Slider. /// </summary>

2022-03-07 23:59:47 3078

原创 UIGU源码分析7:Scrollbar

#源码7:Scrollbar public class Scrollbar : Selectable, IBeginDragHandler, IDragHandler, IInitializePotentialDragHandler, ICanvasElement { [SerializeField] private RectTransform m_HandleRect; // Direction of movement.

2022-03-06 23:35:29 3732

原创 UIGU源码分析5:Button

源码5:Button前面讲了Selectable的作用 和相关的操作。在UGUI里很多UI控件都是继承Selectable的:Button DropDown Scrollbar Slider Toggle 。 这里就以Button为准分析一下public class Button : Selectable, IPointerClickHandler, ISubmitHandler{ [Serializable] /// <summary> /// Functi

2022-03-05 22:17:01 170

原创 UIGU源码分析6:Toggle 和 ToggleGroup

源码6:Toggle 和 ToggleGroupTogglepublic class Toggle : Selectable, IPointerClickHandler, ISubmitHandler, ICanvasElement{ /// <summary> /// Display settings for when a toggle is activated or deactivated. /// </summary> public enu

2022-03-05 22:15:28 432

原创 UIGU源码分析4:Selectable

源码4:Selectable前面以及讲完了UGUI的输入模块和事件系统,下面要分析一下UGUI的相关控件。对于UI画布上的可视化元素,包括Image/RawImage/Text,存在一个共同的基类Graphic。对于事件系统,每一个可执行操作的元素,例如Button/Toggle等,也存在一个基类Selectable。 本文会谈谈Selectable的实现Selectable简单看下Selectable的定义/// <summary> /// Simple selectabl

2022-03-05 20:45:56 851

原创 UIGU源码分析3 :ExecuteEvents

源码3:ExecuteEvents上面在分析 输入模块的时候 都提到了会有对应的事件发送。具体的实现就在ExecuteEvents 类里面下面我们来分析一下这个事件系统在最上面 有一个委托定义 public delegate void EventFunction<T1>(T1 handler, BaseEventData eventData);带有两个参数 一个是handler 是个泛型 一个是eventData通常这个会包含位置信息 偏移量 点击物体等等基于

2022-03-02 22:22:13 581

原创 UIGU源码分析2:StandaloneInputModule

源码2:StandaloneInputModule在上文EventSystem中,EventSystem调用了BaseInputModule的process函数,将输入的部分交给了输入模块去处理。根据处理流程的不一样,开发者可以实现不同的BaseInputModule子类,并重写process函数。Unity则是提供了默认的StandaloneInputModule类。这一篇文章先来了解BaseInputModule的继承结构,随后以process函数为入口,继续了解事件系统。BaseInputMo

2022-03-02 22:20:00 1249

原创 UIGU源码分析1:EventSystem

源码1:EventSystem private List<BaseInputModule> m_SystemInputModules = new List<BaseInputModule>(); private BaseInputModule m_CurrentInputModule; private static List<EventSystem> m_EventSystems = new List<EventSys

2022-03-02 22:18:45 289

原创 Unity UGUI中两点之间连线的通用实现

这里实现两控件之间进行连线,线段使用图片完成,主要是涉及到坐标的转换和图片的缩放同时也实现了手指和指点ui控件点之间的连线using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;public class DrawLine : MonoBehav...

2019-12-21 16:15:07 9677 22

原创 Unity3d 2018.3 嵌套Prefab

Unity3d 2018.3 嵌套PrefabUnity 的2018.3版本千呼万唤终于出来了,本人最期待的亮点就是加入了嵌套prefab,下面我就这一些做一些简单的测试首先创建三个prefab都没有任何子物体1在Project上点击任何prefab都会看到open prefab按钮,打开就可预览prefab属性打开后修改prefab上的任意属性Hierarchy属性也会跟着...

2019-01-12 22:29:33 3429 1

原创 lua table设置只读

现在做开发有很多数据都是用的lua表,我们有时候希望只做读取,不希望在读取后再做修改,这里我们就希望lua表设置成只读数据这里我们就需要依赖于lua的元表(Metatable)了, 关于元表不清楚的话可以点击这里查看只读的话需要使用__newindex 元方法__newindex 元方法用来对表更新,__index则用来对表访问 。当你给表的一个缺少的索引赋值,解释器就会查找__...

2018-12-14 23:15:08 871

原创 代码获取Unity编辑器中的窗口

获取Unity编辑器中的窗口这段时间在做编辑器相关内容,有时候需要对Unity自带的窗口做一些操作,这里就需要用代码反射EditorWindow程序集下的类型获取到窗口代码如下using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEditor;usin...

2018-11-24 01:01:09 3152

原创 UnityEditor 相关记录

UnityEditor 相关好久没做一些记录了,近段时间忙于项目,我主要负责给策划做一些编辑器的支持,Unity编辑器相关的内容用的比较多,在这里做一些记录,以供参考学习自定义EditorWindow继承EditorWindow类,写一个静态方法调用EditorWindow.GetWindow()等api创建一个窗口。在OnGUI方法里使用GUI相关Api进行界面布局,可以使用G...

2018-10-17 22:06:06 265

原创 Unity里用C# 简单读取和写入CSV文件的通用模板

我这里读取和写入csv的想法是想根据一个数据格式类作为判定依据,后面针对的读取想要的数据就比较方便。 我这里默认表数据格式是第一行类型字符串, 第二行属性键, 第三行属性值 。默认的主键ID是int定义一个空的数据类 public class CSVDataBase { //子类里面定义属性,目前只支持(int ,string, fl...

2018-07-14 22:17:39 4646 5

转载 理解lua 语言中的点、冒号与self

转载自:https://blog.csdn.net/wangbin_jxust/article/details/12170233 lua编程中,经常遇到函数的定义和调用,有时候用点号调用,有时候用冒号调用,这里简单的说明一下原理。 girl = {money = 200} function girl.goToMarket(girl ,someMoney) ...

2018-05-28 22:52:28 723

原创 UGUI快速实现摇杆功能

摇杆其实就是根据移动的距离,通过一定得比例算出对象的移动方位和距离 这里我们利用UGUI提供的Scrollrect可快速拿到移动的距离获得(-1, 1)代码如下using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.EventSys...

2018-05-02 23:53:25 612

原创 xlua入门(5)自定义Loader

xlua执行加载lua代码有两种执行字符串 最基本是直接用LuaEnv.DoString执行一个字符串,当然,字符串得符合Lua语法 比如:luaenv.DoString(“print(‘hello world’)”) xlua的使用文档上说这种方式并不建议。加载Lua文件 用lua的require函数即可 比如:DoString(“require ‘b...

2018-04-22 20:55:22 3657

原创 面试记录

近段时间因为个人的一些想法和当前公司的一些状态申请辞职了。出去面了一些大厂,把其中的一些面试题记录一下。盛大面试题二叉树红黑树 https://blog.csdn.net/whucyl/article/details/17254801 https://blog.csdn.net/varyall/article/details/49622739 https://blog...

2018-04-05 14:24:52 511

转载 lua面向对象是怎么实现的

转载自:http://blog.csdn.net/s_xing/article/details/19575059lua语言中没有真正意义的面向对象,而是通过函数模拟面向对象。我们来看是怎么一步步演化的。基本的函数[plain] view plain copyPeople = {} function People.sayHi() print("Hi, nice to meet you.

2018-03-15 20:23:49 1573

原创 xlua入门(4)c#和Lua之间值类型的传递避免GC

避免值类型的GC 一个C#纯值类型(注:指的是一个只包含值类型的struct,可以嵌套其它只包含值类型的struct)或者C#枚举值加上了这个配置。xLua会为该类型生成gc优化代码,效果是该值类型在lua和c#间传递不产生(C#)gc alloc,该类型的数组访问也不产生gc 除枚举之外,包含无参构造函数的复杂类型,都会生成lua table到该类型,以及改类型的一维数组的转...

2018-02-28 23:08:17 4422 2

原创 xlua入门(3)c#调用Lua脚本

xlua入门(3)c#调用Lua脚本using UnityEngine;using System.Collections;using XLua;public class InvokeLua : MonoBehaviour{ //创建一个接口用于映射lua里的table //也可以用clas或者struct, Dictionary&lt;&gt;, List&lt;&g...

2018-02-27 23:30:05 1110

原创 xlua入门(2)lua来写 UIEvent

c#脚本还是上一篇文章中的脚本,绑定到Button按钮上//在unity上拖入对应的输入组件,添加引用对象到lua脚本中 foreach (var injection in injections) { scriptEnv.Set(injection.name, injection.value); }function start() print("lua start....

2018-02-27 22:42:30 2203

原创 xlua入门(1)lua来写MonoBehaviour

using UnityEngine;using System.Collections;using System.Collections.Generic;using XLua;using System;[System.Serializable]public class Injection{ public string name; public GameObject v...

2018-02-27 22:02:24 1760

转载 Unity UDP Socket的简单使用

转载自:http://blog.csdn.net/u012234115/article/details/46483885由于UDP是面向无连接的通信,所以实际上服务端和客户端是对等的,只不过服务端绑定了一个监听端口,而客户端每次都是自动分配的连接端口,其实也可以做成两边都绑定端口或者都不绑定端口的P2P模式。以下UDP是同步模式。建立两个unity工程,编写脚本,挂到场景中。

2018-01-21 22:10:53 6110 2

转载 Unity TCP Socket的简单使用

点击查看Socket API 转载自:blog.csdn.net/u012234115/article/details/46481845unity内部封装了一个很高层次的网络接口,不过有时候并不需要那么复杂的功能,只是想实现简单的TCP网络连接,可以在unity里面用C#写tcp socket。以下TCP连接是同步模式。建立两个unity工程,编写脚本。服务端usin

2018-01-21 22:00:00 10492 2

转载 记录一些那些让我糊里糊涂的HTTP、TCP、UDP、Socket(三)

转载自 https://www.cnblogs.com/lavenderone/archive/2011/10/14/2212523.html TCP,IP,HTTP,SOCKET区别和联系 网络由下往上分为:        对应            物理层–

2018-01-14 22:54:12 324

Unity对话系统源码

unity对话系统源码VIDE Dialogues (Pro) 2.1 Requires Unity 5.0.0 or higher. VIDE is a lightweight dialogue system and interface designed to be bindable to any UI system. You are in control of the dialogues you create. Key features: - Add sprites, audios, text, tags, and more - Manipulate dialogue during runtime - NPC and Player-styled nodes - Multiple comments per node - Multiple media per comment - Limitless, multiple-choice comments - Call your in-game methods - Not limited to conversations only - Static or instanced data managers. - Customizable editor skins - Built-In localization system - Compatible with all GUI plugins - Compatible with most localization plugins - All source code in C#. Includes JS demo

2017-12-03

Online Maps_2.5.16

Features: ? Supports Unity v4.6+, Unity v5+; ? Standalone, Android, iOS, Windows Store, WebGL, Webplayer; ? Online and offline maps; ? 2D maps and 3D maps with elevation; ? 2D, 3D and Billboard markers; ? Supports Texture, GUITexture, NGUI, DF-GUI, iGUI, SpriteRenderer, uGUI (UIImage, UIRawImage) and Tileset; ? Google Maps, Mapbox classic, ArcGIS, Nokia Maps (HERE.com), Virtual Earth (Bing Maps), Open Street Maps, and many others (16 providers, 88 map types); ? Multilingual map with the ability to create your own style; ? Support Google API web services: Direction API, Elevation API, Geocode API, Places API, Places Autocomplete API, Roads API; ? Other web services: AMap Search, Bing Maps Elevation API, Bing Maps Location API, HERE Routing API, Open Route Service Directions, Open Route Service Geocoding, Open Street Map Nominatim, Open Street Map Overpass API, QQ Search, What 3 Words; ? Additional Features: GPS (with emulator), cache, traffic, Overlays, Drawing API, runtime 3D buildings;

2017-11-05

Easy Mobile

Easy Mobile is our attempt to create a many-in-one Unity package that greatly simplifies the implementation of de facto standard features of mobile games including advertising, in-app purchasing, game service, notification and native mobile functionality. It does so by providing a friendly editor for setting up and managing things, and a cross-platform API which allows you to accomplish most tasks with only one line of code. It also leverages official plugins wherever possible, e.g. Google Play Games plugin for Unity, to ensure reliability and compatibility without reinventing the wheel.

2017-10-31

简单的CenterOnChild实现工程

简单的CenterOnChild实现工程

2017-07-18

Unity Vectrosity5.4绘制各种线条的实用工具

Vectrosity是一款用于在Unity编辑器中绘制各种线条的实用工具,支持在运行时模仿Debug.DrawRay函数的功能在屏幕中绘制线条,甚至可以用来制作一款全3D向量构成的游戏

2017-06-29

Unity ShaderForge 1.3

UnityShaderForge, 不是最新版本,在unity5.6上部分shader会报错。需要的注意下。

2017-06-09

Unity消息订阅机制的插件

基于c#的可在unity里使用的消息订阅机制的插件包,具体使用方式参考里面的示例demo。实现消息传递,及其方便

2017-03-26

Match3 Puzzle Maker 三消游戏模板

unity三消游戏开发模板

2017-03-15

Uniwebview 2.9.1

Unity中使用WebView

2017-03-02

uniwebview_2_9_1

Unity中使用WebView

2017-03-01

RadarChart Unity用UGUI画雷达图,多边形

Unity用UGUI 画多边形,雷达图

2017-02-20

GraphMaker

支持UGUI NGUI

2017-02-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除