public PlayableStateController(PlayableGraph graph) { m_Params = new PlayableAnimatorParameter(); m_StateLayers = new List <StateLayer>(); m_LayerMixer = AnimationLayerMixerPlayable.Create(graph, 1); m_LayerMixer.SetInputWeight(0, 1f); var layer = new StateLayer(0, graph, m_Params); layer.SetPlayableOutput(0, layer.layerIndex, m_LayerMixer); m_StateLayers.Add(layer); // 添加默认层 m_Graph = graph; }
public void AddLayer(int layerIndex) { if (-1 != m_StateLayers.FindIndex(l => l != null && l.layerIndex == layerIndex)) { Debug.LogErrorFormat("layer:{0} has existed!", layerIndex); return; } var layer = new StateLayer(layerIndex, m_Graph, m_Params); int emptyIndex = m_StateLayers.FindIndex(l => l == null); if (emptyIndex != -1) { m_StateLayers[emptyIndex] = layer; } else { m_StateLayers.Add(layer); m_LayerMixer.SetInputCount(m_StateLayers.Count); } layer.SetPlayableOutput(0, layer.layerIndex, m_LayerMixer); }