Unity
文章平均质量分 75
newchenxf
一个喜欢打球的搬砖员,一言不合就要拿砖头来投篮
展开
-
图形学中的抗锯齿讨论以及在unity中的应用
对图形学中的抗锯齿做了讨论,并给出unity中的使用方法原创 2023-05-22 21:46:12 · 4100 阅读 · 0 评论 -
Unity 渲染YUV数据 ---- 以Unity渲染Android Camera数据为例子
Unity渲染Android的Camera YUV 裸数据,在shader中做YUV->RGB转换原创 2022-09-30 20:36:44 · 3565 阅读 · 2 评论 -
Unity 截取3D图像 与 画中画PIP的实现
基于Camera + RenderTexture,截取3D游戏世界中的部分图像,还实现画中画的功能。原创 2022-07-29 16:44:56 · 1364 阅读 · 0 评论 -
Unity shader 实现图片带圆角和边线border
unity shader实现圆角+ border原创 2022-07-18 21:43:03 · 5491 阅读 · 5 评论 -
Unity实现ScrollView并包含吸顶效果
用Unity实现一个滑动的view,子元素可以随意添加,不需要一样。可以上滑吸顶原创 2022-07-07 10:57:25 · 1995 阅读 · 0 评论 -
Unity实现 GridView 页面
Unity实现GridView,可滑动原创 2022-07-04 17:59:12 · 1446 阅读 · 0 评论 -
Unity AssetBundle的打包 发布 下载与加载
都2022了,为什么还讨论AB包?不是有`Addressables`了嘛!本文之所以讨论,是为了梳理一下AssetBundle的优缺点,方便跟Addressables做对比。本文分两部分,一是AssetBundle的介绍,以及不使用任何第三方插件,如何使用AssetBundle的API。二是,介绍第三方插件,即QFramework的ResKit如何封装AssetBundle API,做资源加载。原创 2022-05-16 16:54:17 · 3804 阅读 · 0 评论 -
Unity为人物模型 添加动效Animator
本文讨论如何让人物模型快速绑定多种动画,并运行起来。原创 2022-03-07 16:22:06 · 26972 阅读 · 2 评论 -
Unity 动态添加或移除预制件
具体而言,指的是在代码中,动态添加或删除预制件。这种功能,一般用于切换副本,地图等场景。例如,做两个预制件,一个是主城,一个是副本。那可以通过代码,来动态加载2个预制件,来切换场景。先把预制件放到Assets/Resouces目录下,如果文件多的话,可以再叠加个目录,如prefab。例如,绝对路径是Assets/Resouces/prefab/ExitZone.prefab。核心代码:GameObject.Instantiate原创 2022-01-13 17:29:48 · 6670 阅读 · 0 评论 -
一款简单好用的Unity任务系统
一款简单好用的任务系统,包括任务线定制,弹窗提示,对话框显示等功能。容易扩展,容易使用。原创 2022-01-13 15:19:24 · 9915 阅读 · 37 评论 -
Unity导出Android工程
前言一个Unity游戏,要打包成android apk,有两种方式,一种是直接在Unity上编译出apk;一种是Unity导出android 代码,然后放到AndroidStudio工程编译。第一种很简单,本文不做展开,来聊一下第二种。本文基于Unity 2020.3.13f1c1版本来说明,不同的版本可能使用上稍微有点差异。1 导出首先,需要让工程支持arm v7和arm v8两种架构,否则在某些机型上,会运行失败。做法如下:File -> Build Settings,打开面板后,左下角的原创 2021-12-14 13:08:54 · 18043 阅读 · 1 评论 -
GPU 渲染管线与着色器 大白话总结 ---- 一篇就够
参考Android OpenGL ES 1.基础概念计算机组成原理–GPU计算机那些事(8)——图形图像渲染原理原创 2021-10-12 11:47:17 · 10853 阅读 · 13 评论 -
Unity 3D对象显示有透明度的纹理(图像或视频) ---- 靠谱可用
1 问题背景有一个3D游戏对象(再次强调,是3D对象,不是2D的UI喔),如Cube, Plane啥的,需要贴上一张图,图中有部分区域是透明的。比如酱紫:然后,如果直接贴图片,则透明区域会显示黑色。例如:2 解决方案2.1 场景搭建首先,创建一个3D对象,如Cube。然后,把图像加入到工程的Assets目录下。Hierarchy面板选中Cube,然后把Project面板的图片,直接拖到Inspector面板。发现,Cube显示了图片。但是,透明区域是黑色的。这有2个问题需要弄清楚。原创 2021-09-01 11:19:47 · 1805 阅读 · 1 评论 -
Unity Android动态请求权限
前言在 Android 6(API 级别 23)及更高版本上,Android.Permission API 要求在需要时,动态请求使用某些常用系统功能(例如相机、麦克风或位置)的权限,而不是在应用程序启动时立即请求权限。Unity的Android版本,一样要遵守这个要求。这里介绍2种方法,一种是C#直接请求,一种是C#调用Android的java代码请求。1. Unity的C#直接请求Unity本身有动态权限的请求方法。但是这种比较局限,比如,无法获得权限请求的结果。anyway,这里还是介绍一下原创 2021-08-27 17:05:29 · 1594 阅读 · 0 评论 -
Unity同步或异步调用Android的方法
1 Unity如何使用Android插件很简单,把android的模块,打包成aar或者jar,放到Assets/Plugin/Android即可!2 同步方法如何调用2.1 例子1Android端假设Android有一个方法 public static String GetVideoParams() { MediaMetadataRetriever retriever = new MediaMetadataRetriever(); retriever.se原创 2021-08-26 20:24:14 · 1522 阅读 · 0 评论 -
Unity Android 错误 call to OpenGL ES API with no current context (logged once per thread) 解决办法
当你使用unity + Android 混合使用,且使用Android编译openGL相关代码,并作为插件给Unity使用,则可能遇到上面的错误:08-26 11:11:42.871 20717 20739 E libEGL : call to OpenGL ES API with no current context (logged once per thread)这可能和一个选项配置有关系:如上图,有个Multithreaded Rendering。把打钩去掉即可!这是一个多线程渲染的选项原创 2021-08-26 14:46:05 · 1741 阅读 · 0 评论 -
Unity 绿幕视频抠图算法&原理与实现 -- 效果极好
1 Unity播放视频1.1 把绿幕视频放到Assets中这个太简单了,直接视频拖到Assets下的某个目录,例如video目录1.2 创建播放视频的对象RawImageHierarchy面板,UI -> Raw Image。1.3 创建Render Texture这个将为视频播放的输出,也是RawImage的输入。在Project面板,你要的目录下,邮件,创建Render Texture建立好了,在Inspector面板,改一下纹理size,最好和视频源一样的宽高。1.4原创 2021-08-10 21:48:03 · 8593 阅读 · 17 评论 -
Unity 渲染 Android播放的视频画面
前言Unity本身可以直接播放本地视频或网络视频,网上有很多例子,例如:https://blog.csdn.net/cs874300/article/details/89294433这可以完全在Unity封闭完成。但是,有一种情况,是播放逻辑希望在Android的代码内完成(比如是直播的流,用的是android 的直播SDK),希望Unity只渲染我播放的画面就可以。这种情况怎么做呢?本文一一说来。首先,完成上面的工作,需要依赖FBO,所以先介绍FBO。FBO简介FBO,全名Frame Buf原创 2021-08-10 16:22:38 · 3504 阅读 · 5 评论 -
Unity Android 查看或修改AndroidManifest 如权限等等
首先,发布Android版本,可以查看这个文章:Unity发布版本(windows或Android)Unity自动帮你生成了Activity, AndroidManifest ,资源等Android基本文件。你啥也不需要管。但是,但是,如果你运行起来,发现没有权限,需要Manifest声明修改,怎么办?两种情况:1. 在Unity中使用了网络/存储/震动等调用,那Unity会自动列出权限,在编译时可以配置。例如,你用了网络,那File -> Build Settings -> Pl原创 2021-08-05 19:49:16 · 4948 阅读 · 3 评论 -
Unity发布版本(windows或Android)
1 PC发布版本Files -> Build Settings打开先Add Open Scenes把你需要的场景都加入发布列表。然后,Player Settings点击,到Inspector面板(不同版本,显示的可能不一样)Product Name 写一下游戏的名称;Default Icon,点击箭头区域,选择一个游戏图标。然后,点击Resolution and Presentation,根据需要设置画面的固定大小(不是必须)然后,Other SettingsColor Spac原创 2021-08-04 17:16:28 · 1841 阅读 · 0 评论 -
Unity游戏结构与引擎视图
游戏结构具体如下图:一个游戏由多个Scene场景组成。Sence类似于Android的activity。一个Scene场景,由多个GameObject游戏对象组成。GameObject类似于Android的各种Button呀,ImageView呀等等。一个GameObject游戏对象,由多个Component组件组成。Component类似于Android Button的LayoutParams。一个Component组件,由一些具体的属性值组成,类似于Android LayoutParams原创 2021-08-03 21:08:32 · 1007 阅读 · 0 评论 -
Unity 为游戏对象设置标签
我们从【是什么】【为什么】【怎么用】三个问题,来讨论游戏对象的标签。1. 什么是标签标签 (Tag) 是可分配给游戏对象的参考词。例如,可为玩家控制的角色定义“Player”标签,为场景中的各种树木定义为“Tree”标签。具体到Unity中,比如,我们新建一个游戏对象,那么,Inspector面板,开头就是个Tag的坑位。值是Untagged,也就是没有具体标签值。2. 为什么要有标签标签不是必须的,它主要用于脚本,一个典型的例子是,你拿到了一个gameObject,但不知道这个是啥东西,就可原创 2021-08-03 17:54:51 · 4203 阅读 · 0 评论 -
Unity脚本调用其他GameObject游戏对象
不知道标题写的够不够清晰,意思就是,有个脚本,需要使用同一个Scene下的其他游戏对象。该怎么做呢?1. 脚本定义一个变量这个变量,不需要像java那样,需要自己去new,而是回到Unity软件中,去绑定一个对象。ps: 记得脚本要保存一下喔!Ctrl + S,动作很快,你忍一下^^2. Unity绑定到具体对象回到Unity软件,点击绑定这个脚本的游戏对象(GameObject),Inspector面板将会显示脚本的全局参数。而且,还自动把参数拆解了一下,写成Test Obj了,我也不知道原创 2021-08-02 11:29:24 · 6175 阅读 · 1 评论 -
Unity 按钮绑定一个脚本函数
如果有一个Scene(相当于Android开发的一个activity),里面添加一个Button,那这个Button想要代码执行点击事件,该怎么做呢?一个比较完美的做法如下。1. 创建按钮Hierarchy面板,创建你的按钮。当然了,不只是按钮,别的东西如图片啥的,都可以!2. 创建一个脚本专用的GameObject这个对象和UI没有任何关系,专门就是绑定脚本的。专门处理Scene中需要脚本执行的工作。原理就是,Scene加载后,会加载这个对象,对象又会去驱动脚本运行。如上,右键点击Sce原创 2021-08-02 10:50:55 · 6582 阅读 · 0 评论 -
Unity预制件Prefab的概念,创建与加载(包括动态加载)
预制件定义英文单词Prefab,含义就是预制件,比如板房就是用预制的铁板组合成的。回到游戏中,也是类似的概念。一个3D场景中,如果有很多重复的东西,比如树木,草,箱子啥的,那就可以预制一个东西出来,然后到处可以用。所以,预制件又可以称为可重用资源。预制件的优点:对预制件资源所做的任何编辑都会自动反映在该预制件的实例中,因此可以轻松地对整个项目进行广泛的更改,而无需对资源的每个副本重复进行相同的编辑。使用预制件的一些常见示例包括:环境资源 - 例如,在一个关卡附近多次使用的某种树(如上面的截屏原创 2021-07-30 18:48:07 · 7479 阅读 · 0 评论 -
Unity Sprite的概念或意义
Unity软件中,到处有Sprite,它代表的是2D图形对象。问题是,Sprite的英文字面意思,是精灵。两者牛头不对马嘴呀!!其实呢,这是有渊源的。在计算机图形学中,咱们翻译Sprite应该叫精灵图。它指的是,当一张二维图像集成进场景中,成为整个显示图像的一部分时,这张图就称为精灵图“精灵图”一词首次作为图形术语出现,是在德州仪器的9918(A)视频显示处理器上。使用“精灵图”作为术语,是因为精灵图并不是帧缓冲中位图数据的一部分,而是“悬浮”于帧缓冲中数据之上,不影响其中数据,就像精灵飘在上面一样。原创 2021-07-29 16:25:19 · 4971 阅读 · 1 评论 -
Unity添加可拉伸的图片
创建首先,把图片放到Assets目录下(可以是Assets下的子目录)。然后打开Unity,发现它非常敏捷的发现了图片,并在同一个生成了meta文件,但这我们不用关心,只要知道Unity发现了你的图片了。这时候,在Project面板,选中刚才加的图片:这时候,Inspector面板会显示图片信息。[Texture Type]从Default改为Sprite(2D and UI)。这代表图片可以作为2D UI切图了。然后点击Sprite Editor,可以编辑图片。出来的窗口如下:共有四个原创 2021-07-29 15:50:21 · 2674 阅读 · 2 评论