
Unity3D
文章平均质量分 91
Sun.ME
这个作者很懒,什么都没留下…
展开
-
浅谈客户端框架设计|一|二|三
浅谈u3d客户端框架设计|一|二|三原创 2022-08-19 22:02:06 · 1287 阅读 · 1 评论 -
Unity3D最全性能优化参考手册(渲染、代码、UI)
Unity3D最全性能优化参考手册,从渲染流程、代码分析原理入手原创 2021-09-04 22:34:20 · 8422 阅读 · 2 评论 -
Unity中视频播放控制
Unity中视频控制,调整播放进度原创 2020-05-10 16:09:47 · 2716 阅读 · 1 评论 -
从图形渲染管线谈游戏性能优化
从图形渲染管线谈性能优化原创 2020-05-03 17:41:48 · 1973 阅读 · 1 评论 -
Unity上传文件到.net core 服务器并提供二维码下载
Unity 上传图片到服务器,并提供文件的二维码下载地址原创 2019-12-30 12:07:37 · 5901 阅读 · 2 评论 -
Unity 中实现一个简单的可折叠菜单
Unity3D 中使用UGUI实现可折叠菜单原创 2019-11-01 13:42:52 · 5862 阅读 · 6 评论 -
Addressable Asset System使用介绍
Unity3d Addressable Asset System(可寻址资源系统)背景介绍Addressable Asset System是Unity提供的一种易于通过地址来加载资源的一种资源加载方式,使用这套系统可以很轻松的创建和部署你游戏中的资源。使用这套系统你可以使用异步的方式来加载你部署在任意位置的任...原创 2019-10-28 14:14:22 · 3978 阅读 · 0 评论 -
Unity编辑器中Dictionary的序列化
Unity 字典可视化序列,在Unity中实现类似于List集合在Inspector面板中的可视化操作原创 2019-10-13 19:37:33 · 13145 阅读 · 0 评论 -
收放自如的光剑-ShaderGraph
Unity3D ShaderGraph的使用,C# 控制Shader参数原创 2019-09-05 14:28:41 · 1386 阅读 · 0 评论 -
Unity中实现倒计时
Unity3D 中实现倒计时功能原创 2019-05-09 18:28:24 · 5536 阅读 · 0 评论 -
Unity 中制作虚拟摇杆
目的制作一个虚拟摇杆,并使用虚拟摇杆控制角色行走一、介绍虚拟摇杆你可能想过如何控制你的士兵在人群中走动在格斗游戏中如何控制角色战斗和移动操作虚拟摇杆控制角色在场景中移动在你的脑海中想象一个简单的虚拟摇杆,我们将在接下来的内容中一步步的实现它。我们实现的效果如下图:二、Scene 配置配置你的场景结构,如下图所示那样。在这里,我们使用一个简单的2D图像代表我们将要控...翻译 2019-04-01 11:46:23 · 6519 阅读 · 0 评论 -
游戏开发中的贝塞尔曲线
目的了解Bezier Curve(贝塞尔曲线)在游戏中的使用预览本章实现效果如下简介贝塞尔曲线是最基本的一种曲线,通常用于计算机图行和图像的处理。可被用来创建平滑弯曲的道路,如同祖玛游戏中弯曲的道路,蜿蜒的河流一样。通过设置一组从 P0到Pn的点来定义一条贝塞尔曲线,其中n表示曲线的序列点(n=1时为一次,n=2时为二次)。第一个和最后一个点通常是曲线的结束点。如果在两个点之间有...翻译 2019-03-11 15:24:01 · 2990 阅读 · 0 评论 -
游戏开发中的物理抛物运动
一、理解抛物线抛射物是在上抛过程中受到唯一重力影响。举一个抛射物的例子,一颗从加农炮中射出的炮弹;一块被扔到空中的石头;或者一个从桌边掉落的小球;这些物体走过的曲线路径称之为运动轨迹。当空气阻力被忽略时,其运动的路径是抛物线形状。二、抛物运动的分类许多类型的抛物运动不仅遵循垂直运动,也遵循水平运动。也就是说,抛物运动在水平方向移动的同时,也在做垂直方向的运动。表明抛物运动包含水平和垂直...翻译 2019-03-08 17:58:48 · 3347 阅读 · 0 评论 -
中介者模式在游戏开发中的应用
中介者模式:定义一个接口用来封装一群对象的互动行为。中介者通过移除对象之间引用,来减少它们之间的耦合度,并且能改变它们之间的互动独立性。意图:通过中介者来解决对象之间的通信,使一个对象在不需要知道其它对象的具体信息的情况下通过中介者与之通信,同时通过引用中介者来减少系统对象之间的关系,提高对象的可复用性和可扩展性需求描述创建一个简单的小游戏游戏包含MotionSystem(运动...原创 2019-03-01 17:52:21 · 8424 阅读 · 4 评论 -
状态模式在游戏开发中的应用
状态模式在状态模式中,类的行为是基于它的状态改变的。这种类型的设计模式属于行为模式。我们通过创建一个对象来随着状态的改变而进行不同的行为。意图允许对象在内部状态发生改变时改变它的行为,对象看起来好像修改了它的类。主要用来解决:对象的行为依赖于它的状态,并且可以根据它的状态改变而改变它的行为。需求描述:我们在游戏中控制一个角色,我们需要操作键盘,按下不同的键来改变当前角色的状态...原创 2019-01-18 14:14:07 · 10486 阅读 · 2 评论 -
命令模式在游戏开发中的应用
命令模式的描述:命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式。请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。意图: 将一个请求封装成一个对象,从而使您可以用不同的请求对客户进行参数化。需求描述:给定两种不同的工具:锤子、刷子;锤子可以用来砸开泥土表层,刷子可...原创 2019-01-17 18:39:41 · 10346 阅读 · 1 评论 -
Unity GL函数库的简单使用
使用Unity GL库绘制图像使用Unity自带的GL函数库在屏幕上绘制一些特殊的图形,如圆、线条、曲线、矩形等一些图形,并可以给绘制的图形指定相应的纹理。但是,使用GL绘制图形的纹理使用的Shader有一些限制,仅支持如下Shader:Particles->VertexLit VlendedUnlit->ColorUnlit->TextureUnlitr->...原创 2018-12-28 17:15:04 · 3800 阅读 · 0 评论 -
Unity 广告牌 (Billboard)的实现
实现一个广告牌的效果,使一个面片在摄像机旋转的过程中始终面向摄像机。实现效果如下截图。原创 2018-11-14 15:06:44 · 9503 阅读 · 0 评论 -
对象池的创建和使用
对象池简介对象池用来存储需要被大量创建和重复使用的对象,降低程序的IO访问,在合适的时间点创建和释放对象池,有助于提升程序整体性能。以下创建了一个基本的对象池,实现创建多个池,从池中取对象,回收对象,以及回收回掉。Demo截图如下: 工程目录: 创建对象池void Start () { ObjectPool.Ins.CreatePool (cubePool, () => ...原创 2018-11-13 14:50:30 · 1059 阅读 · 0 评论 -
Unity 精简缓动动画脚本
实现了一个Dotween超精简版的脚本,核心均基于Unity MonoNehaviour.StartCoroutine方法实现,添加了Unity.Transform添加扩展方法,方便调用。包含动画过程中常用的基本的位移、缩放、旋转、淡入淡出、以及数值的动态变化。使用也非常简单。直接将Plugins下的Prefabs拖动到场景中,然后再脚本中调用即可。Demo截图预览 部分代码如下us...原创 2018-11-12 15:31:07 · 2026 阅读 · 0 评论 -
Unity 场景切换的淡入淡出
分享一个场景淡入淡出的脚本文件,实现效果如下: 具体代码如下:using System;using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.SceneManagement;public class SceneFade : MonoBehavio...原创 2018-11-08 16:21:39 · 3122 阅读 · 0 评论 -
Unity相关技术文章分享
原创 2018-10-17 10:35:40 · 1864 阅读 · 0 评论 -
Unity中实现ViewPage、ScrollSnap
之前分享过一片关于弹性滚动列表的文章: .借助了DoTween插件实现的,这次分享一个基于ScrollView的滑屏列表。移动原生平台应该称为ViewPage吧。先看一下预览。(作者链接:Unity Forums)完整代码如下:using System;using UnityEngine.EventSystems;namespace UnityEngin...原创 2018-09-06 11:33:38 · 1485 阅读 · 0 评论 -
Unity 从UI中拖拽对象放置并拖动
需求:点击UI,在场景中生成3D对象,对象跟随鼠标移动,放置后可再次拖拽对象,改变其位置。做了一个小Demo,如下图所示: 实现大致思路:射线碰撞检测对象空间坐标变换(世界坐标->屏幕坐标、屏幕坐标->世界坐标)首先为要生成3D对象的UI添加一个鼠标监听事件,脚本如下:SelectImage.csusing System.Collections;using...原创 2018-07-31 15:49:04 · 10268 阅读 · 2 评论 -
Unity DragonBone 动画遮罩与混合
项目中使用了DragonBones来做2D骨骼动画,分享一下有关动画遮罩和混合的注意点。需求:场景中有一匹马,马背上有一个持红缨枪的武士,要求马一直处于奔跑的状态,马背上的人可以播放攻击、防御动画。由于版权原因,我这里使用白鹭官方的小白人做演示吧。1.动画片段(人物奔跑)2.动画片段(手舞足蹈)3.实现如下动画(混合动画)关于动画遮罩与混合:动画遮罩动画遮...原创 2018-07-23 17:37:39 · 5298 阅读 · 1 评论 -
Unity中实现360度预览模型(修改版)
最近一直很多人私信问去年写的一篇:Unity中实现360°预览模型的文章,回看了一下去年写的文章,简直惨不忍睹,结构和思路都不太清晰,鉴于问的小伙伴有点多,这里重新写一下这篇文章,希望可以帮到大家。一、实现方式要实现模型的360°预览,主要有两种方式:1. 旋转模型本身,通过改变模型在世界空间的欧拉角或者自身的旋转角来实现。(将脚本挂载到需要旋转的物体上)void ...原创 2018-07-17 10:56:09 · 6602 阅读 · 3 评论 -
生成随机不重复的数组
之分享过一个生成随机不重复数组的一个算法,感觉不太完善,有一点缺陷。这里重新分享一个新的。核心代码如下如下:using System;using System.Collections;using System.Collections.Generic;public class RandomIndex { //单实例模式 private static RandomInde...原创 2018-06-21 21:15:52 · 3290 阅读 · 0 评论 -
Unity3D中操作Sqlite创建本地数据库、实现增删改查
参考:[ http://blog.youkuaiyun.com/qinyuanpei/article/details/46812655] (git地址在末尾) 开发过程中,有时需要存储一些用户相关的信息到本地,XML、Json、SQL是常用的手段,json、xml可以用于存储一些量比较小的数据,程序访问也比较方便。但是涉及到数据的增删改查,使用数据库是比较好的方式。这里简单的介绍一下Unity3D中原创 2018-01-17 17:35:37 · 11796 阅读 · 1 评论 -
Unity中对象池的使用
参考: 1.Unity —– 对象池GameObjectPool 2.Unity3D内存管理——对象池(Object Pool) 游戏开发中需要经常实例化和访问IO来动态加载和调用资源,频繁的访问和调用IO组件是一个比较消耗资源的操作,因此,为了提升游戏的体验效果,一般会使用对象池来预先存储需要大量实例化的对象和资源,当真正需要使用对象和资源的时候,不是调原创 2018-01-12 09:43:28 · 2445 阅读 · 0 评论 -
Unity中实现放大镜的功能
在Unity中使用UGUI中的Rawimage和RenderTexture实现放大镜的功能原创 2017-11-22 11:55:34 · 9604 阅读 · 1 评论 -
Unity中使用有限状态机(FSM)来管理UI面板的切换(UGUI)
使用有限状态机来实现Unity UI中的面板切换原创 2017-10-15 20:41:30 · 5727 阅读 · 3 评论 -
Unity中实现弹性滚动列表基于UGUI
在Unity中实现弹性的滚动列表,基于UGUI原创 2017-10-02 15:42:24 · 3270 阅读 · 0 评论 -
Unity中实现360°预览模型
此版本显示有问题,请移步新版文章:https://blog.youkuaiyun.com/JianZuoGuang/article/details/81077412原创 2017-09-23 15:22:58 · 5069 阅读 · 0 评论 -
Unity中协程的运行
在协程中搭配一个while循环,可以促使携程在多个帧数中运行,而不是一帧中就运行完成如:private IEnumerator _GameOver() { isGameOver = true; StartCoroutine(ScreenShake.Shake(theGame, 0.1f)); while (ScreenSh原创 2016-06-08 10:26:22 · 2132 阅读 · 0 评论 -
在Unity中使用代码类来管理多个Panel(面板)之间的切换
(想要实现的功能是:在一个主Canvas下有多个面板,通过点击某一个面板下的按钮切换到另外一个面板,再通过点击这个面板下的按钮切换到上一个面板,或者其他的面板,也就是在多个面板间进行自由的切换,简单的来说就是对UI进行管理,实现各个UI间的自由切和交互)首先,写一个PanelInstance.cs类,为每个要管理的panel添加这个脚本,PanelInstance.cs的代码示例如下:(Pa...原创 2016-06-06 17:28:53 · 24182 阅读 · 15 评论 -
Unity两点间的线性插值及其协程的使用
从今天起,开始分享我的C#和Unity学习心得,不定期的更新分享我的学习笔记,分享的内容都是很基础的,很适合小白同志,大神不要吐槽哦Unity两点间的线性插值及其协程的使用 :从代码分析Iemumator Rotate(){ float t0 = transform.eulerAngles.z; float t2 = transform.原创 2016-06-05 11:03:23 · 1912 阅读 · 0 评论