unity
Zack-zzh
这个作者很懒,什么都没留下…
展开
-
unity 导出游戏符号表
符号表位置脚本放在 Editor 目录下,然后导出安卓工程的时候会有using UnityEngine;using System.Collections;using UnityEditor.Callbacks;using UnityEditor;using System.IO;using System;public class MyBuildPostprocessor{ [PostProcessBuildAttribute()] public static vo原创 2020-06-10 10:00:09 · 2755 阅读 · 2 评论 -
Unity3D–Texture图片空间和内存占用分析
我打包多种类型的项目,空项目和10张放在Resources文件夹中的图为比较案例。以下是比较数据。IPHONE:1.空项目—-空间占用量42.3MB—-IPA大小10MB2.10张1200*520无压缩Texure 单张图占用量2.8MB—-空间占用量70.2MB—-IPA大小22.9MB3.10张1200*520压缩成1024*1024PVRTC4 单张图占用量0.5MB—-空间占用量47.3MB—-IPA大小13.2MB4. 10张1024*1024无压缩Texture 单张图占用量转载 2020-06-02 19:20:39 · 963 阅读 · 0 评论 -
Unity C#调用so文件
1.so源文件1.1 NaviteCode.h#ifndef __NativeCode_H__#define __NativeCode_H__#if 0#define EXPORT_DLL __declspec(dllexport) //导出dll声明#else#define EXPORT_DLL #endifextern "C" { EXPORT_DLL int MyAddFunc(int _a, int _b); EXPORT_DLL char* GetPkey();原创 2020-05-28 17:51:34 · 3300 阅读 · 1 评论 -
Unity dll 使用及加密
生成dll首先参考Unity3D游戏开发之C++插件接入有所不同的地方,vs2017 新建的方式下一步其它的一样注意[DllImport("Native4Unity")] Native4Unity 是导出的 dll文件名加密DLL使用.NET Reactorhttps://www.eziriz.com/reactor_download.htm成功后会多一个_Secure 后缀的文件夹...原创 2020-05-26 11:55:05 · 965 阅读 · 1 评论 -
Unity Mask
Mask 添加 Mask 组件RectMaskSoft Mask 插件比 unity 自带的mask 组件更平滑MeshMaskhttps://www.jianshu.com/p/ea5da5d07af0原创 2020-04-13 23:24:27 · 329 阅读 · 0 评论 -
UGUI 检测射线穿透的方法
有时候,需要处理 UI 在前,3D 物体在后,射线检测时,点击UI,会穿过UI让 3D物体也触发了。有两种方式一种是通过EventSystem的RaycastAll检测 一种是通过GraphicRaycaster的Raycast检测 public static bool IsPointerOverUIObject() { PointerEventData e...转载 2020-04-09 10:59:57 · 387 阅读 · 0 评论 -
unity 定时器
1. Update 中计算public class TestTimer : MonoBehaviour { private float lastTime; private float curTime; void Start () { lastTime = Time.time; } void Update () { ...原创 2020-04-08 23:03:22 · 796 阅读 · 0 评论 -
Unity 合批
动态合批与静态合批其本质是对将多次绘制请求,在允许的条件下进行合并处理,减少cpu对gpu绘制请求的次数,达到提高性能的目的。1. static batching: 静态合批是将静态(不移动)GameObjects组合成大网格,然后进行绘制。静态合批使用比较简单,PlayerSettings中开启static batching,然后对需要静态合批物体的Static打钩即...转载 2020-04-02 22:58:07 · 1346 阅读 · 0 评论 -
unity Dynamic Shadow Projector 使用
资源商店搜索下载安装新建 两个Cube 和一个 Sphere 在一个 空的 GameObject 下灯光设置为 No Shadows新建一个 Plane ,并创建一个 Sphere 在该节点下,用来测试阴影是否正确在 GameObject 下新建一个 空的 对象 pr, 并添加脚本, Draw Target Object就会自动绑定, Pro...原创 2020-03-30 14:28:44 · 927 阅读 · 0 评论 -
unity-light4-反射探针
Cube1, Cube2 ,Ground 为静态物体,Directional Light 为 Mixed 类型新建反射探针类型为 Baked,在Sphere 下, Sphere材质的反射率为1,烘焙完成后,小球的则有了静态物体反射影像, 并且 Shadow casters 为 2,则代表成功,后面可直接烘焙 反射探针选项。...原创 2020-03-29 22:28:35 · 326 阅读 · 0 评论 -
unity-light3-灯光探针
当物体为静态,并且烘焙为光照贴图后,动态的物体,经过时将不会受静态物体的阴影的影响。灯光探针就是为了解决这个问题,让动态物体受静态物体光照的影响。Walls_And_Floor 为静态物体,并且烘焙完光照贴图。添加灯光探针组,点击编辑,然后拖到黄色小求一半在阴影里,一半在阴影外,然后再次烘焙,烘焙完后,拖动 cube 动态物体,在阴影的里面的时候则会变暗,受到静态物体阴...原创 2020-03-29 22:03:37 · 406 阅读 · 0 评论 -
unity-light2-阴影
1. 没有阴影的原因1.检查 是否灯光开启了阴影2.检查物体是否接受阴影3. Project Settings -> Quality 中的 Shadows 是否关闭了4.在手机上没有阴影的原因,检查是否选择 Low 和 Very Low 等级,默认是不显示阴影的。5. 检查物体的 shader 是否接受阴影。2.烘焙光照阴影全局...原创 2020-03-29 21:33:47 · 502 阅读 · 0 评论 -
unity-light1-天空盒
1.创建天空盒找到天空盒的贴图素材然后拖到 unity 资源目录下,选择类型为 Cube 类型,点击 Apply然后拖到场景的天空中即可,拖入后会自动生成,Materials 文件夹,可以修改材质的参数,调整天空的效果2.物体反射天空盒新建一个 cube , 发现呈现黄色,这是受天空盒的影响,如果显示的是黑色的,在灯光设置界面,选择天...原创 2020-03-29 19:55:48 · 1702 阅读 · 0 评论 -
Unity 之 QualitySettings
Unity允许您设置QualitySettings将尝试呈现的图形质量级别。一般来说,质量是以帧率为代价的,因此最好不要在移动设备或旧硬件上瞄准最高质量相关知识借鉴:https://blog.csdn.net/Aries_H/article/details/52161432https://docs.unity3d.com/2017.3/Documentation/Manual...转载 2020-03-22 20:34:39 · 329 阅读 · 0 评论 -
unity 3DCamera根据宽度适配(3D相机适配)
using System;using System.Collections;using System.Collections.Generic;using UnityEngine;/// <summary>/// 3D相机根据宽度适配,默认的相机是根据高度适配的/// 将该脚本挂在Camera的物体上/// </summary>public class C...转载 2020-03-22 17:19:17 · 2096 阅读 · 0 评论 -
Unity C# Job System - 3
using System.Collections;using System.Collections.Generic;using Unity.Collections;using Unity.Jobs;using Unity.Mathematics;using UnityEngine;using Unity.Burst;public class NewBehaviourScript :...原创 2020-03-07 20:26:32 · 221 阅读 · 0 评论 -
Unity PostProcessing
Post-processing是将全屏的滤镜和特效应用于摄像机的图像缓冲区,然后渲染在屏幕上的过程。只需要花费较少的时间进行设置,就可以大大提高产品的视觉效果。你可以使用Post-processing来模拟物理摄像机和电影效果。下面的图片展示了应用和没应用Post-processing的差别。使用了没使用安装Package(资源包)安装和更新Post-process...翻译 2020-02-24 22:06:03 · 1293 阅读 · 0 评论 -
Unity C# Job System - 2
安装1.using System.Collections;using System.Collections.Generic;using UnityEngine;using Unity.Collections;using Unity.Jobs;// Job adding two floating point values togetherpublic struct MyJ...原创 2020-02-04 21:45:34 · 311 阅读 · 0 评论 -
Unity C# Job System - 1
How the C# Job System works Unity c# Job System 允许用户编写多线程代码,这些代码可以与Unity的其他部分很好地交互,并且使得编写正确的代码更加容易。编写多线程代码可以提供高性能的好处。其中包括帧率的显著提高。在c# Job 中使用Burst编译器可以提高代码生成质量,这也可以显著降低移动设备上的电池消耗。c# Job System 的...翻译 2020-02-04 21:02:16 · 914 阅读 · 0 评论 -
Addressable Asset System(进阶版AB)和AssetBundle(以下简称AB)制作的资源管理系统的对比
介绍AB作为之前Unity主推的资源管理工作流,可以把模型、贴图、预制体、声音、甚至整个场景都打入压缩包中,然后在游戏过程中再加载。使用他的主要目的有以下几点:1.统一的资源管理、2.做分包、3.热更资源。他也有一个最大的缺点就是需要开发者自己写一套资源管理系统来管理依赖、引用关系。 可寻址资源系统是现在Unity现在主推的资源管理工作流,他的基石是AB,所以他拥有之前AB所有的功能。并且他...转载 2020-02-01 16:41:56 · 3970 阅读 · 0 评论 -
The Addressable Asset System 正式版应用(一)
简介在开始之前,我们也还是先做一个Addressable Assets System的简单介绍:为什么我们需要使用这样一套新的这套系统来进行资源的管理?我们先来整理一下目前在Unity中使用到资源加载、实例化的几种方式:直接引用直接引用是最简单快捷,也是最难以控制的一种方法。在一定规模的项目中,直接引用往往就是莫名奇怪出现的bug的源泉。using UnityEngine...转载 2020-02-01 16:04:12 · 468 阅读 · 1 评论 -
PoolManager插件
// 取出元素 SpawnPool shapesPool = PoolManager.Pools[this.poolName]; Transform tt = shapesPool.prefabs["UIImage"]; Transform inst = shapesPool.Spawn(tt);// 回收元素SpawnPool shapesPool = PoolMa...原创 2020-01-20 14:04:06 · 346 阅读 · 0 评论 -
UGUI 坐标转换
using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;public class NewBehaviourScript : MonoBehaviour{ public Image image1; public Image image...原创 2020-01-15 23:44:55 · 203 阅读 · 0 评论 -
unity 加载界面
using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.SceneManagement;using UnityEngine.UI;public class Load : MonoBehaviour{ public Text loadText;...原创 2020-01-07 20:11:22 · 433 阅读 · 0 评论 -
Unity游戏开发图片纹理压缩方案
Unity3D引擎对纹理的处理是智能的:不论你放入的是PNG,PSD还是TGA,它们都会被自动转换成Unity自己的Texture2D格式。在Texture2D的设置选项中,你可以针对不同的平台,设置不同的压缩格式,如IOS设置成PVRTC4,Android平台设置成RGBA16等。嗯,非常的智能。但是,在一些进阶的使用中,一些情况是难以满足的。比如,我们NGUI的图集纹...转载 2019-12-11 11:19:18 · 131 阅读 · 0 评论 -
unity Image 自适应 Text 大小
新建一个 Image , 新建一个 Text 作为 Image 的子节点原创 2019-12-04 10:58:54 · 1239 阅读 · 1 评论 -
unity 模型锯齿,阴影不正常,阴影不出现终极解决办法
本文作者使用的是2017.3.0版unity一.阴影不显示,1.打开平行光的shadow Type2.游戏对象接收光打开3.打开工具栏edit->projectsetting,设置shadows下的shadows确保没有被禁止打开二.模型锯齿1.打开工具栏edit->projectsetting,点击三角图标选择levels,根据你的硬...转载 2019-11-26 23:11:42 · 1418 阅读 · 0 评论 -
Unity - Cinemachine实现相机抖动
普通相机抖动脚本较易实现,但在使用cinemachine相机下,其Transform组件不可被代码修改,那么Cinemachine的相机抖动如何实现呢?本文结合实际项目,对实现相机抖动的三大步骤进行系统讲解:项目地址:Hero - SouthBegoniaversion 2.2.9 packageManager 下载配置流程项目背景:一款2D像素动作游戏,我们操控着Player(...转载 2019-11-22 20:58:43 · 4499 阅读 · 1 评论 -
Unity3D 将UI的点击事件渗透下去
using UnityEngine;using System.Collections;using UnityEngine.EventSystems;using UnityEngine.UI;using System.Collections.Generic; public class Test : MonoBehaviour,IPointerClickHandler ,IPointer...原创 2019-11-14 11:44:21 · 482 阅读 · 0 评论 -
3d物体与Ugui的混合显示
1.在Ugui上显示3d物体2.解决Ugui与3d物体的层级关系第一步 我们先在Hierachy面板创建个父物体,改名为“Model”第二步 在“Model”下创建新“Camera” 并修改“Clear Falgs”属性为“Solid Color”, 去除“Audio Listener”组件(防止多余音频监听报警告)第三步 将准备好的3d物体放在“Model”下。然后调整好摄像机的...原创 2019-11-12 18:16:17 · 403 阅读 · 0 评论 -
Unity3d中 OnTriggerEnter(Collider other) 和OnCollisionEnter(Collision other)对比
测试OnTriggerEnter和OnCollisionEnter的区别测试:如果两个物体A,B两者都有碰撞体collider(Box Collider,Sphere Collider,Capsule Collider等) A,B都有刚体(Rigidbody) A或者B中有一个勾选isTrigger或者两者都勾选isTrigger A和B都可以进入OnTriggerEnte...原创 2019-10-15 13:39:29 · 3633 阅读 · 0 评论 -
Unity3D常用移动方法
一、向量相加减控制移动 transform.position += transform.forward * Time.deltaTime*5f;二、Translate控制移动transform.Translate(Vector3.forward * Time.deltaTime*5f);三、差值控制移动:当前位置,目标位置,速度1、lerp方法:通过中间值移动,最后无限接近...原创 2019-10-03 14:34:29 · 190 阅读 · 0 评论 -
Unity资源路径及加载外部资源介绍
这周因为加载Unity外部资源的问题纠结了整体,也踩了无数的坑,希望通过这篇博客分享一些心得,同时也作为自己的一个总结。各平台的资源路径问题想读取文件就必须在到文件所在的目录,我们先来了解一下Unity下各个资源路径的特点和在各平台下资源路径的存放位置吧。Unity3D中的资源路径路径属性 路径说明 Application.dataPath 此属性用于返回程序的数据...转载 2019-09-12 20:31:17 · 1081 阅读 · 0 评论 -
Unity 加载 xml
public IEnumerator LoadXmlData(int level) { string path = "/levels/map" + level + ".tmx"; string filePath; if (Application.platform == RuntimePlatform.And...原创 2019-08-13 19:13:14 · 345 阅读 · 0 评论