using System.Collections; using System.Collections.Generic; using UnityEngine; public class CopySkinnedMesh : MonoBehaviour { [SerializeField] private SkinnedMeshRenderer _srcSkinned; [SerializeField] private MeshFilter _targetMeshFilter; private MeshRenderer _meshRenderer; private Mesh _mesh; private bool _isInit=false; private Vector4[] _tangents; void Start() { _mesh = new Mesh(); } public void Show(){ _meshRenderer = GetComponent<MeshRenderer>(); _meshRenderer.enabled=true; } public void Hide(){ _meshRenderer.enabled=false; } // Update is called once per frame void Update() { _srcSkinned.BakeMesh(_mesh); if(!_isInit){ _isInit=true; _tangents =new Vector4[_mesh.vertexCount]; for(int i=0;i<_mesh.vertexCount;i++){ var v = _mesh.vertices[i]; _tangents[i] = new Vector4( v.x,v.y,v.z,1 ); } } _mesh.tangents=_tangents; _targetMeshFilter.sharedMesh = _mesh; } }