白泽图

  • 文章
    • Unity渲染
    • Unity项目开发
    • 工具
    • 数学
    • 算法
    • 网站搭建
    • 网络&操作系统
蒋程个人博客
互联网技术经验总结&分享
Unity项目开发

坐标系转换技术应用

需求:由两个点A,B组成一个向量,再加一个点C,构成关系,当这两个点转换到另外两个任意位置A'和B'的时候,需要计算C在新的A',B'位置体系中的相对位置 实现原理: 1.将向量AB和C都移动到原点,即起点A到原点 2.将向量A’B’也移动到原点 3.将AB向量旋转到A'B'向量,旋转过程应用到C 4.缩放(模长比值) 5.平移回到A' 原先在第3步旋转过程中,使用Quaternion.FromToRotation函数,发现旋转后的结果对不上,思考原因应该是个两个原点对齐的向量要重叠旋转方式不确定导致,我改用罗德里…

2025-09-11 0条评论 27点热度 0人点赞 蒋程 阅读全文
Unity项目开发

解决Quaternion.FromToRotation两方向平行相反的问题

Quaternion rotation = Quaternion.FromToRotation(dirA, dirB); return rotation * originalPoint; 通常使用上面方式来将一个点从方向A移动到方向B,但是如果方向A和方向B平行相反时(比如(0,0,1)->(0,0,-1))上面的计算会有问题,此时我们需要指定旋转轴,然后旋转180度,比如 Quaternion rotation = Quaternion.AngleAxis(180f, Vector3.up); return…

2025-08-27 0条评论 50点热度 0人点赞 蒋程 阅读全文
Unity项目开发

Unity Animator.Rebind() 接口会导致TPose

由于项目角色模型内部比较复杂,使用统一的一套骨架,然后各部位SkinnedMeshRender重定向到骨骼,其中有动画文件绑定使用了BlendShape,然后部件是动态加载的,所以用了Animator.Rebind()接口,之所以之前没有发现会Tpose会由于动画文件一直在播,当动画播放一半,将Animator.enabled = false时,使用该接口,会导致TPose,且Animator动画状态都正常,很难查到,此问题是写战斗冰冻效果时,使用Animator.enabled了,然后触发了LOD模型加载,记录下…

2025-08-25 0条评论 52点热度 0人点赞 蒋程 阅读全文
Unity项目开发

使用反向深度拷贝赋值unity对象

当使用ScriptableObject.CreateInstance()复制一份UnityEngine.Object对象时,会获得了一份完全独立的内容,里面的内容都是默认的,如果此时需要将已有一份UnityEngine.Object对象的内容拷贝到新的UnityEngine.Object对象时,可以使用如下代码 public static class DeepCopyByReflection { /// <summary> /// 安全反射创建对象,(亲测:使用反射创建一个没有默认构造(无参)函数的类对…

2025-08-25 0条评论 49点热度 0人点赞 蒋程 阅读全文
Unity项目开发

在Unity中通过反射获取SerializedProperty的值

写编辑器遇到需要通过SerializedObject的SerializedProperty获取其对应的对象(比如需要调用其方法),以下封装一个统一方法,便于以后直接使用 using System.Collections; using System.Collections.Generic; using UnityEditor; using UnityEngine; using System; using System.Reflection; public class ReflectPropertyPath : Mon…

2024-04-10 0条评论 3366点热度 10人点赞 蒋程 阅读全文
Unity项目开发

Unity Hierarchy与Scene窗口的操作限制

记录一下在编写编辑器时对unity的一些操作限制,防止遗忘 static void OnHierarchyGUI(int instanceID, Rect selectionRect) { var e = UnityEngine.Event.current; //禁用 TBCParticleSystem 在Hierarchy面板的右键菜单 if (selectionRect.Contains(e.mousePosition) && e.button == 1 && e.type &l…

2023-11-21 0条评论 3745点热度 1人点赞 蒋程 阅读全文
Unity项目开发

常用Gizmos图形封装

using System.Collections; using System.Collections.Generic; using UnityEngine; namespace TBC { public class TBCGizmos { public enum CapsuleDirection { XAxis, YAxis, ZAxis, } /// <summary> /// 线框球体 /// </summary> public static void DrawWireSphere(Ma…

2023-08-16 0条评论 3939点热度 1人点赞 蒋程 阅读全文
Unity项目开发

使用命令行调用unity案例模板(支持update)

C#脚本 using UnityEngine; using UnityEditor; public class TestClass { // 要调用的函数 public static void TestFunc() { Debug.Log("************* TestFunc ******************"); startTime = Time.realtimeSinceStartup; EditorApplication.update += Run; } static float startTi…

2023-08-14 0条评论 3639点热度 0人点赞 蒋程 阅读全文
工具

vscode安装chatgpt

打开vscode在“插件扩展”中搜索"ChatGPT中文版",按快捷键打开命令面板(ctrl+shift+p 或者 command+shift+p),选择>ChatGPT:切换成国内/国外模式选项,属于APIkey,回车即可使用 APIkey需要到openai官网 https://beta.openai.com/account/api-keys 注册账号,并创建(创建的时候记得复制,后面复制不了),现在大多数软件都是用这个APIKey去帮你访问chatgpt,说白了只是一个壳,接的chatgpt的api,之前…

2023-03-12 0条评论 4977点热度 5人点赞 蒋程 阅读全文
Unity项目开发

判断TimelineAsset是否被修改

最近在写一个基于Timeline的编辑器,需要在关闭Timeline编辑器的时候对TBCAsset(继承于TimelineAsset)资源进行保存,并写入一些额外的数据,因为保存有些耗时需要1~2秒,所以需要判定如果只是打开,但并未修改TBCAsset资源点关闭后直接退出 我用EditorUtility.IsDirty来对资源进行判断是否有修改,但发现并不准确,翻看Timeline源码后,发现TimelineAsset的TrackAsset与PlayableAsset资源是通过AssetDatabase.AddOb…

2023-03-08 0条评论 4058点热度 0人点赞 蒋程 阅读全文
12345…9
分类
  • Unity渲染 / 26篇
  • Unity项目开发 / 45篇
  • 工具 / 20篇
  • 数学 / 2篇
  • 算法 / 1篇
  • 网站搭建 / 4篇
  • 网络&操作系统 / 5篇
最新 热点 随机
最新 热点 随机
坐标系转换技术应用 解决Quaternion.FromToRotation两方向平行相反的问题 Unity Animator.Rebind() 接口会导致TPose 使用反向深度拷贝赋值unity对象 在Unity中通过反射获取SerializedProperty的值 Unity Hierarchy与Scene窗口的操作限制
使用反向深度拷贝赋值unity对象Unity Animator.Rebind() 接口会导致TPose解决Quaternion.FromToRotation两方向平行相反的问题坐标系转换技术应用
解决Quaternion.FromToRotation两方向平行相反的问题 蓄水池抽样(Reservoir Sampling)算法详解 Unity项目优化-AnimationClip动画的定制压缩 关于PlayableGrahp在编辑器下改变状态无法立即更新的问题 CentOS内核升级 NGUI扩展UITexture支持设置Texture的同时,动态修改对应材质的参数

COPYRIGHT © 2023 白泽图. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

登录
注册|忘记密码?