
Unity3D
文章平均质量分 70
步云端
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Unity 过场工具(Cutscene)设计(二)
本章主要分析一下过场一般的必要组成元素,以及在Unity中的制作方案原创 2023-01-16 22:48:50 · 1373 阅读 · 0 评论 -
Unity 过场工具(Cutscene)设计(一)
游戏中通常会涉及到过场内容的制作,从而来进行一些强表现,从而来进行剧情相关的串联,使游戏表现类容更丰富。比较典型的游戏 像原神,天刀等等游戏。原创 2023-01-15 18:53:53 · 2295 阅读 · 0 评论 -
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 · 818 阅读 · 1 评论 -
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 · 798 阅读 · 0 评论 -
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 · 562 阅读 · 0 评论 -
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 · 351 阅读 · 0 评论 -
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 · 400 阅读 · 0 评论 -
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 · 1065 阅读 · 0 评论 -
UIGU源码分析11:Canvas和CanvasUpdateRegistry
源码11:Canvas和CanvasUpdateRegistryRuntime类图CanvasCanvas 画布 UGUI的重要组件。 UGUI源码里并没有给Canvas源码 他是在UnityEngine里,这里反射看下源码。Canvas本身提供给引擎调整的参数是上面那些。基本是调整渲染模式 层级 显示等等。源码里有几个比较重要的属性要记录下 public delegate void WillRenderCanvases(); // 公有事件,在CanvasUpdateRe原创 2022-03-12 22:48:58 · 7789 阅读 · 0 评论 -
GU源码分析10:InputField
源码10:InputFieldInputField就是输入框 提供给用户输入文字内容的 是一个重要的交互手段。比如常见的用来输入用户名 ,密码等等。 public class InputField : Selectable, IUpdateSelectedHandler, IBeginDragHandler, IDragHandler, IEndDragHandler, IPointerClick原创 2022-03-09 23:36:18 · 914 阅读 · 0 评论 -
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 · 332 阅读 · 0 评论 -
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 · 3170 阅读 · 0 评论 -
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 · 3848 阅读 · 0 评论 -
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 · 245 阅读 · 0 评论 -
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 · 549 阅读 · 0 评论 -
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 · 1045 阅读 · 0 评论 -
UIGU源码分析3 :ExecuteEvents
源码3:ExecuteEvents上面在分析 输入模块的时候 都提到了会有对应的事件发送。具体的实现就在ExecuteEvents 类里面下面我们来分析一下这个事件系统在最上面 有一个委托定义 public delegate void EventFunction<T1>(T1 handler, BaseEventData eventData);带有两个参数 一个是handler 是个泛型 一个是eventData通常这个会包含位置信息 偏移量 点击物体等等基于原创 2022-03-02 22:22:13 · 708 阅读 · 0 评论 -
代码获取Unity编辑器中的窗口
获取Unity编辑器中的窗口这段时间在做编辑器相关内容,有时候需要对Unity自带的窗口做一些操作,这里就需要用代码反射EditorWindow程序集下的类型获取到窗口代码如下using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEditor;usin...原创 2018-11-24 01:01:09 · 3341 阅读 · 0 评论 -
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 · 3525 阅读 · 1 评论 -
Unity3d UnityEditor编辑器定制和开发插件
[转载](http://blog.youkuaiyun.com/a351945755/article/details/35286761) 在阅读本教程之前,你需要对Unity的操作流程有一些基础的认识,并且最好了解内置的GUI系统如何使用。如何让编辑器运行你的代码Unity3D可以通过事件触发来执行你的编辑器代码,但是我们需要一些编译器参数来告知编译器何时需要触发该转载 2017-11-05 16:41:01 · 7945 阅读 · 0 评论 -
Unity与Android的交互,使用Android Studio导出各Unity工程通用的Android插件包
网上已经有很多关于Unity与Android之间的交互,教程基本都一样,但是里面有个都强调的重点是创建安卓工程时包名要和unity的bundle id要一致,这样我就比较疑惑,如果一些通用的功能换个unity工程那不就每次都得建安卓工程导出插件包不就很麻烦?!!所以我特地整理了一下如何做一个通用的给unity使用的安卓插件包,如果有不足,请大家留言指正。创建安卓工程(我使用的是AndroidStu原创 2017-05-27 16:49:45 · 3544 阅读 · 2 评论 -
UnityEditor 相关记录
UnityEditor 相关好久没做一些记录了,近段时间忙于项目,我主要负责给策划做一些编辑器的支持,Unity编辑器相关的内容用的比较多,在这里做一些记录,以供参考学习自定义EditorWindow继承EditorWindow类,写一个静态方法调用EditorWindow.GetWindow()等api创建一个窗口。在OnGUI方法里使用GUI相关Api进行界面布局,可以使用G...原创 2018-10-17 22:06:06 · 334 阅读 · 0 评论 -
Unity里用C# 简单读取和写入CSV文件的通用模板
我这里读取和写入csv的想法是想根据一个数据格式类作为判定依据,后面针对的读取想要的数据就比较方便。 我这里默认表数据格式是第一行类型字符串, 第二行属性键, 第三行属性值 。默认的主键ID是int定义一个空的数据类 public class CSVDataBase { //子类里面定义属性,目前只支持(int ,string, fl...原创 2018-07-14 22:17:39 · 4842 阅读 · 5 评论 -
Unity TCP Socket的简单使用
点击查看Socket API 转载自:blog.youkuaiyun.com/u012234115/article/details/46481845unity内部封装了一个很高层次的网络接口,不过有时候并不需要那么复杂的功能,只是想实现简单的TCP网络连接,可以在unity里面用C#写tcp socket。以下TCP连接是同步模式。建立两个unity工程,编写脚本。服务端usin转载 2018-01-21 22:00:00 · 10682 阅读 · 2 评论 -
Unity3d 5使用sqlite3
转载自:http://blog.youkuaiyun.com/glunoy/article/details/52037598国内讲的乱七八糟,更有故作神秘提供Mono.Data.Sqlite.dll System.Data.dll的,就是不告诉你这两文件在哪里。。我很无语。看国外的,多靠谱。http://answers.unity3d.com/questions/743400/database-sqlite转载 2017-07-03 15:28:06 · 1889 阅读 · 0 评论 -
ScriptableObject 整理1 :ScriptableObject的介绍
转载自 :[http://blog.youkuaiyun.com/candycat1992/article/details/52181814](http://blog.youkuaiyun.com/candycat1992/article/details/52181814) 写在前面我竟然最近两天才知道Unity中ScriptableObject的存在……看了下ScriptableObject的一些介绍,转载 2017-06-22 13:41:44 · 958 阅读 · 0 评论 -
ScriptableObject 整理2 :通过自定义编辑器创建对应的asset文件
整理了一下ScriptableObject的用法,避免在创建ScriptableObject的时候重复修改代码,特地做了一个编辑器。主要是通过反射找出所有的ScriptableObject类型的.CS文件,然后生成对应名字的asset文件。找出所有的ScriptableObject类型,传给自定义的窗口using UnityEngine;using System.Collections;usi原创 2017-06-22 15:17:11 · 985 阅读 · 0 评论 -
Unity IAP的简单使用
这里我只贴出如何用代码进行购买和恢复购买并拿出订单号的方法(AppStore需要先去iTunes Connect设置商品id)代码的使用方法如下,其实官方手册上有详细的示例代码 官方使用教程 : https://unity3d.com/cn/learn/tutorials/topics/ads-analytics/integrating-unity-iap-your-game回执单的验证:htt原创 2017-06-09 16:53:41 · 7580 阅读 · 5 评论 -
【Unity3d】5.6新系统——Video Player
新出的Unity5.6,在原有的基础上增加了许多功能。特别是视频播放,我也亲自测了一下pc端和安卓端,基本能满足需求。刚好看到了一篇博客,介绍了其基本用法,也挺详细的,就转过来了。 以下内容转载自:http://blog.youkuaiyun.com/dark00800/article/details/70160463 不久前Unity正式发布了5.6版本,作为5.x版本的最后一转载 2017-04-22 20:56:27 · 2108 阅读 · 0 评论 -
[Unity优化]减少DrawCall:批处理
转载自:http://blog.youkuaiyun.com/lyh916/article/details/45725499参考链接:http://game.ceeger.com/Script/Mesh/Mesh.CombineMeshes.html一、批处理1.批处理的目的就是为了减少DrawCall。DrawCall即CPU命令GPU去绘制。2.如果我们需要渲染一千个三角形,那么把它们按一千个单独的转载 2017-03-14 20:21:35 · 673 阅读 · 0 评论 -
Unity发布的ios包在iphone上声音小的原因
更新了一个包,发布过后遇到一个问题,用户反馈在iphone上声音小。实质上声音是从话筒里出来的,未走扬声器。仔细查找文档发现是PlayerSettings里的设置不当引起的。在PlayerSettings取消勾选 Prepare iOS for Recording即可下面是Unity的API关于这个属性的解释原创 2017-01-05 23:41:36 · 3384 阅读 · 1 评论 -
Unity5 AssetBundle 打包代码和加载代码
用代码给选中的对象打包Assetbundle,方便给自己打包的内容分类。如果先设置Assetbundlename在打包的时候会一次将设置了Assetbundle的内容打包,不利于分类。using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEditor;using Syst原创 2017-06-12 14:17:42 · 1217 阅读 · 0 评论 -
Unity 导出安卓让应用后台运行
1.点击home键进入后台运行: 在AndroidManifest 中加入 : android:configChanges=”fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen”原创 2017-07-04 17:28:31 · 9471 阅读 · 0 评论 -
Unity将文本复制到剪切板
Unity将文本复制到剪切板将玩家的playerid 或者信息复制到剪切板方便在QQ或其他社交应用中粘贴需要在android 和iOS中分别实现iOS端实现Clipboard.mm@interface Clipboard : NSObjectextern "C"{ /* compare the namelist with system processes */ void转载 2017-07-06 15:31:12 · 1037 阅读 · 0 评论 -
Unity UDP Socket的简单使用
转载自:http://blog.youkuaiyun.com/u012234115/article/details/46483885由于UDP是面向无连接的通信,所以实际上服务端和客户端是对等的,只不过服务端绑定了一个监听端口,而客户端每次都是自动分配的连接端口,其实也可以做成两边都绑定端口或者都不绑定端口的P2P模式。以下UDP是同步模式。建立两个unity工程,编写脚本,挂到场景中。转载 2018-01-21 22:10:53 · 6254 阅读 · 2 评论 -
arpg中的攻击判定
转载自:http://blog.youkuaiyun.com/lyh916/article/details/44728151 记录下关于打斗类(如:ARPG类,并非格斗类)游戏的攻击判定问题,通常这类游戏都会有普通攻击和技能攻击等攻击方式(可参考王者荣耀),下面将分别介绍下。一、普通攻击 普通攻击的流程就是主角靠近敌人,播放攻击动画,调用敌人受伤害计算方法(+被击动画、特效等);这一过程有几点需转载 2018-01-01 18:21:39 · 1696 阅读 · 0 评论 -
记录一些关于android与unity之间交互的文章
http://blog.youkuaiyun.com/luxiaoyu_sdc/article/details/17199065http://blog.youkuaiyun.com/ZhangDi2017/article/details/65629589原创 2017-12-06 23:18:49 · 340 阅读 · 0 评论 -
Unity 使用Unirx网络库进行文件下载
Unirx地址:https://github.com/neuecc/UniRx 下面是进行文件的下载的两个方式,单个下载和批量下载。包括加入请求头using UnityEngine;using System.Collections;using UniRx;using System;using System.IO;using System.Collections.Generic;pub原创 2017-11-19 23:28:37 · 1423 阅读 · 0 评论 -
UGUI检测射线穿透的方法
UGUI检测射线穿透的方法 一种是通过EventSystem的RaycastAll检测 一种是通过GraphicRaycaster的Raycast检测 + 两种方法,代码如下 public static bool IsPointerOverUIObject() { PointerEventData eventDataCurrentPosition = new Poi原创 2017-11-05 00:30:29 · 1695 阅读 · 0 评论 -
通过泛型写一个通用的单例
写一个通用的单例,并且进行数据初始化以及单例的释放public class TSingleton<T> where T : new(){ static T m_instance; public static T Instance() { if (m_instance == null) { m_instance = n原创 2017-10-09 23:26:44 · 1111 阅读 · 0 评论