Unity
阿循
-
Unity脚本ID查看
做了个小工具用来查看脚本的file ID和guid。有什么用呢?比如重构代码后prefab上的组件missing了,可以直接改prefab的yaml文件里的相应file ID和guid,就能重新关联好了。附上代码,做个备忘。using System.Collections;using System.Collections.Generic;using UnityEditor;using UnityEngine;namespace YX{ public class Script..原创 2021-05-07 13:28:39 · 2157 阅读 · 0 评论 -
Unity暂停调试工具
自己写的一个小工具,在Unity输出了指定Log后暂停编辑器。在Unity工程比较大不方便定位问题时,可以通过log来触发暂停,然后单步运行,方便看到每一帧的情况。效果如图:可在Unity输出以指定文本开头、结尾或包含时,暂停编辑器。配置保存在Assets文件夹同目录,不用每次运行重新输入。主要原理就是注册Unity的log事件,然后对log内容与暂停列表的数据对比,在符合时调用编辑器的API暂停。代码如下:#if UNITY_EDITORusing System;using Sy原创 2021-03-08 19:02:40 · 678 阅读 · 0 评论 -
Unity2019 Odin2.0导入使用
听说这个插件很不错,但是自己还没用过,于是网上找了一个2.0版本的打算导入到unity里去看看。由于是用的unity2019,导入进去发现有报错,看了原因是由于一个私有字段在2019中已经没有了。以下是修复至可用的方法:0、把Unity PlayerSetting里的ApiCompatibilityLevel改为.NET 4.x1、删除Assemblies目录。因为里面是编译好的dll,我们直接用源码修改,因此删除掉。2、解压Source目录的Source.zip,得到Source文件夹和Move原创 2021-01-18 18:56:10 · 648 阅读 · 0 评论 -
Unity Lua UI界面封装
lua做UGUI界面控制,找到一个界面的所有要用到的控件去绑定事件或者做控制,如果很原始的Find和GetComponent是一个很痛苦的事情,因为UGUI的界面层级都会嵌的比较深,有很多的重复操作,感受到Lua的灵活与强大,做了一个界面封装:-- 用于Lua的界面封装类-- 使用方式:-- 1、先找到UI的GameObject,例如 local uiObj = GameObject.原创 2017-10-26 16:25:36 · 7077 阅读 · 4 评论 -
Unity点在平面上的投影
随手记录一下~如图示:黑色平面是投影平面,白色球是空间某点,绿色球是白色球在平面上的投影点using System.Collections;using System.Collections.Generic;using UnityEngine;public class ProjPoint : MonoBehaviour { public Transform Target; public Transform ProjProxy; public Vector.原创 2020-09-21 14:23:53 · 3023 阅读 · 0 评论 -
unity关节的驱动力
关节驱动分为线性驱动和角度驱动,对应例如:X Drive和Angular X Dirive。可调整的参数都是三个:Position SpringPosition DamperMaximum Force这几个参数作何解?文档语焉不详,经过查阅资料,有以下结论:对线性驱动,有目标位置和目标速度两个目标。同样的,对于角度驱动,有目标角度和目标角速度两个目标。NVIDIA PhysX的公式为:force = spring * (targetPosition - position) +原创 2020-09-07 16:41:00 · 362 阅读 · 0 评论 -
转动惯量与惯性张量
转动惯量和惯性张量’的定义转动惯量是表征刚体转动惯性大小的物理量,它与刚体的质量、质量相对于转轴的分布有关。大家都知道动能E=(1/2)mv¬2,而且动能的实际物理意义是:物体相对某个系统(选定一个参考系)运动的实际能量,(P势能实际意义则是物体相对某个系统运动的可能转化为运动的实际能量的大小)。E=(1/2)mv¬2 (v¬2为v的2次方)把v=wr代入上式 (w是角速度,r是半径,在这里对任何物体来说是把物体微分化分为无数个质点,质点与运动整体的重心的距离为r,而再把不同质点积分化得到实际..转载 2020-08-13 17:19:03 · 13671 阅读 · 0 评论 -
Unity改变单个物体的重力
通过对官方文档查询,可以确定unity本身应该是不能对单个物体设置重力的,只能通过Physics的Gravity设置全局的重力,而Rigidbody只能通过useGravity来决定是否受重力影响,不过后来我想到可以通过施加额外的加速度来补正全局的的重力加速度,就可以将重力设为任意值了,机智哈哈~经测试设想是可行的。效果如图:非常ok,一个文件即实现,源码如下:using System.Collections;using System.Collections.Generic;using原创 2020-08-06 17:31:06 · 12830 阅读 · 6 评论 -
Unity加载内置资源
内置的资源,如精灵、shader、材质、字体等,怎么用代码去访问?在编辑器中,可以用AssetDatabase.GetBuiltinExtraResource访问,只是传入的path比较迷,可以说不是path,只是一个key。具体的path可以网上查得到,比如那几个精灵的path,在ugui的源码中可以找到。key在哪里定义的?这个就说不清了,可能是资源管理器初始化时写的这么一些特定的...原创 2019-07-11 16:17:03 · 4990 阅读 · 3 评论