
Unity3D
文章平均质量分 50
AndySoeng
要像个大男孩 风吹又日晒 生活自由自在
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Unity 模板测试透视效果(URP)
可以实现笼中窥梦和PicoVR中通过VST局部透视效果。原创 2024-12-15 15:58:34 · 725 阅读 · 0 评论 -
PhotonVoiceNetwork兴趣小组(InterestGroup)使用方法
PhotonVoiceNetwork兴趣小组(InterestGroup)使用方法。原创 2024-08-09 15:27:42 · 184 阅读 · 0 评论 -
UniCAVE实现融合输出或多屏输出
CAVE沉浸式系统包含单主机多屏和多主机多屏两种系统架构。此文档主要介绍融合输出与单机多屏输出,这两种方式都属于单主机多屏。均以使用UniCAVE输出到前左右下为例。引用的Package为UniCAVE2019。原创 2024-07-23 16:43:50 · 1674 阅读 · 0 评论 -
Unity Shader入门精要——笔记
顶点数据–> 几何阶段:(顶点着色器–> 曲面细分着色器–>几何着色器–>裁剪–>屏幕映射)–>光栅化阶段(三角形设置–>三角形遍历–>片元着色器–>逐片元操作)–>屏幕图像顶点着色器:最基本的功能就是把模型的顶点坐标从模型空间转换到齐次裁剪坐标(通常串联成一个矩阵,即MVP矩阵)。原创 2024-07-23 16:49:34 · 1510 阅读 · 0 评论 -
Unity UI优化
4.TexturePacker批量打图集工具。1.压缩UI图片资源减少内存和显存占用。3.SpriteMesh减少填充率。2.动态图集减少批处理。原创 2023-07-04 10:36:13 · 535 阅读 · 0 评论 -
PhotonNetwork.GetCustomRoomList使用方法
看到很多博客说PhotonNetwork.GetCustomRoomList()的第二个参数给null,但实际这个方法内部存在null判断,会进行报错。调用虽然成功了,但有可能因为LobbyType.SqlLobby类型的房间是不会自动触发。并且很关键的一点,当由玩家从房间退出后的短时间内,无论时自动还是通过调用。查看官方文档可知,第二个参数sqlLobbyFilter是一个SQL。来刷新房间列表,都不会获取到房间人数减少。原创 2023-05-30 15:39:03 · 461 阅读 · 0 评论 -
在Unity中对接运动平台协议
为了让运动平台实时随动Unity中物体,使用的十七字节3轴随动协议。原创 2023-05-10 15:52:54 · 294 阅读 · 0 评论 -
环绕打出射线,并根据碰撞次计算衰减比例
//一次环绕的射线次数 private int raycastCount = 1000; //衰减百分比(比如打到一个物体,就衰减到0.9,二次就衰减到0.81) private float attenuation = 0.9f; //射线碰撞信息 private Dictionary<int, RaycastHit[]> raycastHitsMap; /// <summary> /// 绕一圈打出射线,记录...原创 2021-11-25 14:45:16 · 2448 阅读 · 0 评论 -
ILRuntimeDemo理解
方法调用方式//1.通过AppDomain调用方法//参数:类型全名(命名空间+类型)、方法名、实例、实参列表appdomain.Invoke("XX.XXX", "XXXX", null, null);//2.通过IMethod调用方法//预先获得IMethod,可以减低每次调用查找方法耗用的时间IType type = appdomain.LoadedTypes["XX.XXX"];//根据方法名称和参数个数获取方法IMethod method = type.GetMethod("X原创 2021-11-08 13:08:52 · 2779 阅读 · 0 评论 -
Unity 写出PDF到本地(PC)
首先导入itextsharp.dll(及其依赖)到Plugins文件夹。其次,看下面代码。一个写入表格的例子,供学习参考使用:using System.Collections.Generic;using System.IO;using iTextSharp.text;using iTextSharp.text.pdf;public static class WritePDFHelper{ /// <summary> /// 写入PDF /// </原创 2021-10-20 17:05:17 · 2309 阅读 · 0 评论 -
TexturePacker命令行拉起参数
命令之间无需换行,各命令间添加空格即可。Build Path为图集生成路径,Source Path为图片源路径。拉起TexturePacker\bin\TexturePacker.exe后将命令作为参数传入即可将Source Path中的图片打为图集生成在Build Path中。–sheet {Build Path}.png–data {Build Path}.tpsheet–format unity-texture2d–trim-mode Polygon–algorithm Polygon原创 2021-08-31 15:53:06 · 397 阅读 · 0 评论 -
Unity 机器学习 ML-Agents 环境搭建
Github仓库Demo仓库官方仓库文件夹结构com.unity-ml-agents:Unity插件包gym-unity:OpenAI的gym使用(不需要安装)ml-agents:Python算法实现库ml-agents-envs:Python和Unity进行通信的环境环境搭建安装anaconda安装cuda安装cudnn安装torch安装tensorflow安装1-3参考安装tensorflow-gpu参考安装torch参考检查Anaconda是否成功安装:c.原创 2021-04-08 18:26:40 · 848 阅读 · 0 评论 -
Unity屏幕截图保存(适应分辨率变化)
目录Unity屏幕截图保存代码Unity屏幕截图保存截取任意分辨率下Canvas内任意位置任意大小的recttransform的内容。代码 public IEnumerator SavePic(Canvas canvas, RectTransform target, string savePath) { yield return new WaitForEndOfFrame(); //Canvas的sizeDelta Vector3 can原创 2020-12-17 17:52:55 · 1149 阅读 · 0 评论 -
UnityWebgl平台与JS交互、使用UnityWebRequest对接
UnityWebgl平台与JS交互、使用UnityWebRequest对接Unity与前端js交互web数据请求Unity与前端js交互在UnityWebgl平台上,经常会从前端获取参数,如token、host等,使用jslib与前端js代码进行交互。只需要在Plugins文件夹中创建一个xxx.jslib文件即可。jslib文件代码如下:mergeInto(LibraryManager.library, { getUrlParams: function (defaultValue) { va原创 2020-05-19 15:10:30 · 6125 阅读 · 0 评论 -
Vector3的Angle、Dot、Cross
using UnityEngine;public class Dot_Cross : MonoBehaviour{ private Animator animator; private CharacterController characterController; public Transform target; private void St...原创 2020-03-04 14:44:25 · 789 阅读 · 1 评论 -
使用对象池实现的音效池管理类
AudioPoolManagerGitHub:sunny2019/AudioPoolManager简介:一个通过对象池实现的音效池,可以设置音效池中AudioSource的最小数量,当AudioSource数量不足时可动态的生成AudioSource,使用完成后会自动销毁,保持音效池中AudioSource的最小数量。使用过程:将此脚本挂载在物体上,设置音效池中AudioSource...原创 2020-02-17 11:48:01 · 797 阅读 · 0 评论 -
Unity3D 性能优化总结
优化相关前提Unity游戏安装包大/运行卡的原因: mono虚拟机(跨平台基础、简洁开发提高效率)Drawcallhttps://zhuanlan.zhihu.com/p/26386905https://www.zhihu.com/question/36357893SetPasscall DrawCall和Batcheshttp://www.manew.com/4702.ht...原创 2020-02-17 11:45:39 · 715 阅读 · 0 评论 -
高级编辑器主题--编辑器功能拓展总结
菜单栏分类菜单栏分类主要使用 MenuItem 的 priority 优先级属性实现,其优先级默认值为1000,优先级越小,在列表中的位置越靠上。相邻的两个按钮之间 priority 如果相差11(或者大于11),就相当于做了一个分类。 //public MenuItem(string itemName, bool isValidateFunction, int priority);...原创 2020-02-16 23:11:18 · 326 阅读 · 0 评论 -
常用API和常见错误总结
APIUnity事件函数的执行时机和先后顺序void Awake(){ Debug.Log("Awake");}void OnEnable(){ Debug.Log("OnEnable");}public void CustomRethod(){ Debug.Log("CustomRethod");}// Use this for initia...原创 2020-02-16 23:08:20 · 2036 阅读 · 0 评论 -
简单的UI框架(单例脚本)
单例脚本Singleton.csusing System;/// <summary>/// /// 使用方法:/// 1.需要单例的类继承Singleton<T>/// 例如:class UIManager:Singleton<UIManager>/// /// 2.在代码内调用一次 UIManager.Init();/// 之后即可使用U...原创 2020-02-16 23:05:39 · 607 阅读 · 0 评论 -
任务计时器PETimer
任务计时器PETimer分为帧任务和时间任务两部分[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Nk16d7Uq-1581865431258)(https://s2.ax1x.com/2019/03/08/kzz0Rx.md.jpg)]using System.Collections;using System.Collections.Generic;usi...原创 2020-02-16 23:04:58 · 602 阅读 · 0 评论 -
异步加载场景与异步加载游戏资源
异步加载场景与异步加载游戏资源Application.LoadLevel 加载关卡在同步加载游戏场景的时候通常会使用方法Application.LoadLevel 加载关卡。该方法在执行完Application.LoadLevel方法后,会把该场景在 Hierarchy 视图中的所有游戏对象加载至内存当中。因为Application.LoadLevel,若是场景内游戏对象过多,则会在加载的瞬...原创 2020-02-16 23:02:52 · 757 阅读 · 0 评论 -
简单的对象池
对象池模式对象池模式(The Object Pool Pattern)是单例模式的一个变种,它提供了获取一系列相同对象实例的入口。在Unity中使用对象池可以很好的减少实例化生成和销毁的次数,从而达到性能优化的目的。ObjectPool.csusing System.Collections;using System.Collections.Generic;using UnityEngi...原创 2020-02-16 23:01:40 · 153 阅读 · 0 评论