这里主要罗列Unity引擎进行开发的应用或游戏,可以进行优化的各个关注点。(此文会持续更新)
- C# GC alloc
- Update LateUpdate
- Serialize
- String ToString() +=
- Getter API Object.name GetComponents Sprite.vectices
- Debug.Log
- Closure anonymous function
- Unity API
- ParticleSystem Start Stop Pause Clear Simulate (withChildren = false)
- GetComponents Input.Touch (return copy) shall be cached
- Camera.main = Object.FindObjectWithTag("MainCamera")
- Physices.RaycastAll vs Rhysics.RaycastNonAlloc
- UGUI
- Canvas Rebuild Mesh
- Batches
- Mask vs RectMask2D
- GraphicRaycaster - Raycast Target
- Layout Recursion SetDirty
- Canvas Count
- OverDraw
- Sprite Packing NPOT
- Unity
- Static Batching MEM and CPU
- StaticBatchingUtility.Combine
- R/W enabled
- GC Alloc
- Mesh Baker
- Dynamic Batching
- 900 verts
- Lightmap data
- Pass
- Check Batches and SetPass
- Bone and Skinning
- GPU Skinning
- BlendShapes
- Disable Animator
- Instancing
- GPU Instancing
- Animation Instancing
- Physics
- MeshCollider cost too much
- Mesh R/W Enabled
- PhysicsManager Setting
- Fixed TimeStep
- LayerCollisionMatrix
- GPU
- Rendering
- Mesh less tris
- LODGroup
- Mesh Baker LOD
- Terrain Block
- Texture
- Size
- Mipmap
- Filter Mode : Bilinear - UI Trilinear - Mipmap
- Rendering
- Memory
- AssetBundle
- LZMA or LZ4
- Serialized file
- Unload true / false
- Ref count
- IL2CPP
- IOS binarySize
- Android adb dumpsys meminfo -> .so mmap
- AssetBundle