Unity的一些个人有用技巧
1、调整材质在Renderer中,若想对材质做出操作,先获取Renderer这个组件中的material
2、OnTriggerEnter触发检测中的collision,若想判断Tag,直接collision.CompareTag
而OnCollisionEnter碰撞检测中的collision,若想判断Tag,则collision.gameObject.CompareTag
3、GameObject.Find()场景中直接寻找物体
4、Destroy(gameObject)除了瞬时的,也有延迟的Destroy(gameObject,2.0f),延迟2秒消亡。
5、除了射线检测,也可以使用物理检测Physics2D.OverlapCircle()以一个圆形检测
6、二维物体转身,绕y轴旋转外,也可以使用x轴缩放,缩放大小由输入决定
7、可以声明OnDrawGizmos()方法,并自己定义Gizom
8、LineRenderer组件可以渲染线
9、有效利用随机数,提高游戏性
10、PlayerPrefs记录先前数据
11、SceneManager.GetActiveScene().name获取当前场景的名字
12、Per pixel Unit每个网格有多少像素
13、2D绘图 Tilemap=>tilePalette
14、Render图层 越大越远
15、2D中地面碰撞体 Tile map Collider
14、getAxis 有浮点,getAxisRaw 只有(-1,0,1)
15、update 按帧更新,fixedUpdate 按实际帧更新
16、Velocity可以判断是否下落
17、[SerializeField]标签可让外部看见
18、cinemachine插件,自动跟随物体移动等工业效果的摄像机
19、FindObjectType<>返回一个类,一般用于寻找脚本
GameObject.FindWithTag与GameObject.Find都只能返回active的物件
20、Invoke函数的委托,可以控制调用时间Invoke(fuc,延迟时间)
21、Audio Mixer可以实现与拉条sliderbar的交互和与其他神效的混合等
22、触控调节,鼠标左键的功能毫无影响,UI无影响,所有所谓触控,实际上就是UI或者是检测Touch事件或者鼠标事件,Joystick Pack插件也可以实现。
23、单向平台 Platform Effector2D
24、Unity一些常见特性(标签)
[Serializable] 序列化
[SerializeField] 序列化一个域,强制让private外部可见
[UnityEditor.MenuItem("")]编写一个菜单工具,必须为public static
[Range(min,max)] 设置最小最大值,只限接着的第一个声明
[Space] 在编辑窗口空行
[Header("")] 类似注释
[HideInInspector] 隐藏第一个声明
[TextArea]将编辑器中文本空间“扩大”
[CreateAssetMenu] 菜单编写工具,必须继承ScriptableObject类
[RequireComponent(typeof(Rigidbody2D))] 脚本添加一个Rigidbody2D组件
25、射线的常见使用场景:人物上楼梯、判断地面、人物悬挂等 一般会调用的类Physics2D.RayCast
26、让物件在场景永久存在,不被重新加载删除,一般是GameManager与声音等,利用方法DontDestroyOnLoad(gameobject);
27、视口坐标变换ViewportToWorldPoint,仅在正交投影好用
28、Cursor.visible隐藏鼠标
29、加速减速利用协程可以得到很好的效果
30、组件的加载也是一种消耗,当用在子弹上时,利用transfor.Translate来代替刚体组件,将大大减低性能消耗
31、手动更改脚本启动顺序
32、触发器的触发条件
- 两个游戏对象中至少有一个拥有动态/运动学
刚体组件 - 两个游戏对象必须都有
碰撞体组件 - 其中一个游戏对象的碰撞体组件被标记为触发器
- 层级之间得可碰撞
33、碰撞体的触发条件
- 两个游戏对象都拥有碰撞体组件
- 两个为非触发器
- 至少其中一个游戏对象拥有
动态组件 - 层级可碰撞
34、子弹一般不挂载刚体组件,可以减低功耗,因为子弹我们要重复用且数量多,将其挂载到人物身上即可
35、AudioSource.Play()无法播放复数音频,会覆盖正在播放的声音;而AudioSource.PlayOneShot()不会覆盖正在播放的声音
36、异步加载SceneManager.LoadSceneAsync
以及它所返回的类AsyncOperation
它能很好解决LoadScene发生的卡顿,和提高性能
37、getcomponent<>()也能用来判断true或者full
if(getcomponent
38、Sealed
官方描述:应用于某个类时,sealed 修饰符可阻止其他类继承自该类。 还可以对替代基类中的虚方法或属性的方法或属性使用 sealed 修饰符。 这使你可以允许类派生自你的类并防止它们替代特定虚方法或属性。

浙公网安备 33010602011771号