- 博客(29)
- 资源 (1)
- 收藏
- 关注
原创 Unity3D UGUI图集打包与动态使用(TexturePacker)
我们还需要在程序中动态加载图集并使用图集里的小图,才算是完整的。加载整一张图集,此方法会返回一个Object[],里面包含了图集的纹理 Texture2D和图集下的全部Sprite,所以我们就可以根据object 的类型和名字找到我们需要的某张小图片。、打包之后会有一个.png和一个.tpsheet,不用作其他修改,将这两个文件放在工程资源中,这时从工程看这只是一张大图,并不能算是一个图集,使用里面的小图(这时虽然可以用unity3d自带功能,手动对图片进行裁剪,但裁剪的小图大小基本是不对的)
2024-01-03 09:22:36 1945
原创 Unity开发安卓游戏:基于安卓游戏的优化方案总结
之前对项目做了很多优化,mesh合并 ,减少DrawCall和模型骨骼以及物理计算,合并材质球,优化代码等等,在IOS上还好,但是Android上,试过几款手机,从低端到高端,发现性能还是很差,所以又花了几天来研究摸索,终于把游戏性能搞定。记录下来,留作以后参考。多使用事件(不是SendMessage,使用自己写的,或者C#中的事件委托)。1. 更新不透明贴图的压缩格式为ETC 4bit,因为android市场的手机中的GPU有多种,每家的GPU支持不同的压缩格式,但他们都兼容ETC格式,
2024-01-03 09:17:55 696
原创 使用 arm-linux-androideabi-addr2line 工具定位 libunity.so 崩溃问题
它的名称有点不同 - aarch64-linux-android-addr2line。尽管该实用程序的名称不包含单词arm,但它成功地解密了arm64-v8下的堆栈跟踪,并通常感知arm64-v8的字符。是 NDK 自带的调试工具,可以用来分析 so 崩溃时输出的的内存地址。之后就是通过 cmd 进入到这个路径。找到了 64 位所需的实用程序。
2024-01-02 14:54:07 957
原创 Unity查安卓Native Crash的方法,定位SO报错函数
需要用到两个工具Il2CppDumper和IDA_Pro,网上可以下到对应的软件可以看到报错的位置是libil2cpp.so 0000000000AFF820接下来要做的事情就是找到0000000000AFF820对应的函数是哪个。
2023-12-25 11:12:49 361
原创 通过keytool获取sha1、sha256、MD5
D:\ZooGame\Keystore\user.keystore 为绝对路径。一、找到Android keytool.exe文件夹,CMD。三、回车后输入口令(口令为隐藏输入,输完后直接回车)
2023-06-05 14:16:50 866
转载 Unity Shader 图片模糊效果实现
Unity Shader 图片模糊效果实现shader源码如下// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' Shader "Custom/GaussianBlur"{ Properties { _MainTex("Texture", 2D) = "white" {} _StencilComp("Stencil Compari.
2021-01-14 09:46:17 747
原创 Unity VideoPlayer播放视频 Slider控制播放进度
using UnityEngine;using UnityEngine.UI;using UnityEngine.Video;public class ToPlayVideo : MonoBehaviour{ public VideoClip[] videoClips; // 视频的文件 参数 public Text videoTimeText; ...
2020-09-03 16:00:34 971
原创 Unity 制作图集
一、制作图集的好处:众所周知CPU是用来处理游戏的逻辑运算的,而GPU是用来处理游戏中图像的。在GPU中,我们要绘制一个图像需要提交图片(纹理)到显存,然后再进行绘制(在这个过程中会产生一次DrawCall),也就是说我们要绘制100张图片就要产生100次DrawCall.显然这是非常消耗性能的。这是制作图集的好处就显而易见了:①、减少性能消耗,提高处理效率②、可以归类不同模块的图片③、一次加载或者卸载完成多图片的处理,提高了运行效率二、打包图集需要的工具我们经常听说是在NGUI中打包图集,在用
2020-06-22 14:30:27 1273
原创 Unity3D 性能优化
目录优化思路个人优化原则:优化内存Unity资源内存占用排行榜资源内存占用说明:1.优化贴图(Texture)2.优化动画(Animation Clip)3.优化网格(Mesh)4.优化音频(Audio Clip)5.优化材质优化CPU1.降低DrawCall:2.注意代码规范:3.内存换CPU:4.使用异步代替同步:5.使用多线程:优化代码自动更改资源设置优化思路个人优化原则:优化内存U...
2020-04-10 11:43:04 1425
原创 unity Dotween插件_常用方法详解
一、Unity常用组件拓展方法(1) Transform拓展方法1)Position1)改变世界坐标移动方法,第一个参数是要移动到的目标点,不是移动这个向量的距离transform.DOMove(new Vector3(1, 1, 1), 2);只控制x轴上的移动,其他两个方向同理transform.DOMoveX(1, 2);2)改变局部坐标transform.DOLo...
2020-03-17 11:55:51 2110
原创 在 C# 中定义一个真正只读的 List
C# 中的 readonly 关键字表示类中的字段只允许在定义时候或者构造方法中初始化。普通类型的数据完全可以达到预期的效果,但是在对象或者列表中,要想达到只读的效果,只用一个 readonly 关键字是不可以的。当你把一个 List 用 readonly 修饰,在其他类中仍然可以使用 Add,Remove 方法来改变它。但是可能你想要的只读属性是:只有在当前类中修改这个列表的 item,才不想被...
2020-03-10 10:59:14 1216
原创 Unity 骨骼动画 Anima2D
Unity从2018版本开始引入不少2D的新功能,在资源包里加入很多新功能,一定要开启预览模式可以看到新功能,2D Animation,2D IK,2D Pixel Perfect,2D SpriteShape等等。这篇博客主要介绍的是2D Animation:1. 安装 2D Animation安装很简单点击install就可以安装了:我装的是最新的2.0....
2020-02-12 11:02:17 1770
原创 Unity2D camera size和分辨率
2d camera, unit坐标,单位换算2d游戏可以使用平行投影的camera,这种camera需要设置size (orthographicSize),size的含义为屏幕高度的一半,不过单位不是像素而是unit坐标,即通过pixels to units换算的坐标。例如:屏幕高度为640,pixels to units为100的情况下,orthographic size为640/2/100...
2019-12-09 14:04:49 1715
原创 Unity 2D游戏摄像机的上下左右跟随实现
地图需要添加BoxCollider2Dusing UnityEngine;using System.Collections;public class CameraController : MonoBehaviour{ public Transform player;//获得角色 public Vector2 Margin;//相机与角色的相对范围 publi...
2019-07-26 13:47:08 1601
原创 Unity button事件监听的四种方式
UGUI 可视化创建以及关联事件很方便, 动态创建可以利用创建好的 Prefab 进行实例化, 只是在关联事件上有些复杂, 本文总结了几种给按钮绑定事件的关联方式.1. 可视化创建及事件绑定 #Step 1 : 通过 Hierarchy 面板创建 UI > Button.Step 2 : 创建一个脚本 TestClick.cs, 定义了一个 Click 的 public 方法....
2019-07-02 18:17:01 2952
原创 Unity 用于控制摄像机的旋转、远近
/// <summary>/// 用于控制摄像机的旋转、远近/// </summary>public class CameraTransform : MonoBehaviour{ public Transform player; public float scrollSpeed; //滚轮速度 public float rotateSpe...
2019-07-02 17:53:14 859
原创 unity 通过LineRenderer 动态划线
private LineRenderer line1; //画线line1 = this.gameObject.AddComponent<LineRenderer>();//只有设置了材质 setColor才有作用line1.material = new Material(Shader.Find("Particles/Additive"));line1.Se...
2019-06-21 15:25:39 4156
原创 unity 序列帧动画播放
图片必须为Sprite格式脚本拖入到物体上可以直接使用using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;using UnityEngine.SceneManagement;public class StartAnimation : M...
2019-05-04 15:15:28 585
原创 Unity 动态加载 Prefab预设体
在进行一些功能开发的时候,我们常常将一些能够复用的对象制作成.prefab的预设物体,然后将预设体存放到Resources目录之下,使用时再动态加载到场景中并进行实例化。例如:子弹、特效甚至音频等,都能制作成预设体。一、预设动态加载到场景:一个预设体要能够通过代码控制在场景中进行显示,需要三个步骤,这里我们以动态加载怪物血条为例子分析一个常见的误区:1.预设体资源加载: ...
2019-04-30 16:41:58 1351
原创 Unity 鼠标控制摄像机 绕某一点旋转
文章转自https://blog.csdn.net/myk7694503/article/details/43446379using UnityEngine; using System.Collections; /** * 备注:本脚本必须赋予主镜头 */ public class CameraRotateAround : MonoBehaviour { public T...
2019-04-28 16:04:46 2608
原创 unity鼠标事件
鼠标事件:鼠标事件,都是当鼠标和gui或者碰撞体(Collider)交互时候触发。需要说明的是drag其实就是鼠标down后up之前持续每帧都会发送此消息。 OnMouseDown:当鼠标上的按钮被按下时触发的事件; OnMouseDrag:当用户鼠标拖拽GUI元素或碰撞体时调用; OnMouseEnter:当鼠标进入物体范围时被调用; OnMouseExi...
2019-04-28 13:54:33 295
原创 ECS 游戏架构 理解
转载:https://blog.csdn.net/i_dovelemon/article/details/25798677一般来说,我们实现游戏实体都是采用面向对象的方法进行编程。每一个实体都是一个对象,并且需要一个基于类的实例化系统,允许实体通过多态 来扩展。但是,这样的方法,往往导致系统中出现大量的类,造成类爆炸的情况出现。随着新的实体出现,我们发现很难在类继承图中添加新的实体,特别是当这个...
2019-02-20 18:52:35 531
CameraFilterPackv – Unity3D相机滤镜包
2020-06-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人