public void DoAnimation( Character _CharRef, string _ChunkNode, int _ChunkIndex, AnimationState _NextState, float _DelayTime = 0.0f) { RootRef = _CharRef.gameObject; ChunkRef[_ChunkIndex] = GlobalSingleton.Find(_ChunkNode, true); Mesh_VoxelChunk Mesh = _CharRef.mesh as Mesh_VoxelChunk; string BoneIndex = "bone" + _ChunkIndex; // ChunkRef if (null != ChunkRef && null != RootRef && Mesh.Chunks.ContainsKey(BoneIndex)) { ChunkMapRef[_ChunkIndex] = Mesh.Chunks[BoneIndex]; // GlobalSingleton.DEBUG("Ready to change parent:"+ ChunkMapRef[_ChunkIndex].Count); foreach (GameObject go in ChunkMapRef[_ChunkIndex]) { go.transform.SetParent(ChunkRef[_ChunkIndex].transform); } } ChangeAnimationState(_ChunkIndex, _NextState, _DelayTime, true); }
public void DoChangeModel(int _ChunkIndex, MODELTYPE _ModelType) { string model = GenerateModelStringFromTemplateSetting(_ChunkIndex, _ModelType); Mesh_VoxelChunk Mesh = m_ShareMeshData as Mesh_VoxelChunk; if (null != Mesh) { // GlobalSingleton.DEBUG("ChangeModel : " + _ChunkIndex + "," + model); string chunkKey = GenerateChunkKeyFromIndex(_ChunkIndex); Mesh.ChangeModel(chunkKey, model); } }
// copy public Mesh_VoxelChunk(IMesh _CopyMesh) : base(_CopyMesh) { Mesh_VoxelChunk _copyVoxelChunk = _CopyMesh as Mesh_VoxelChunk; if (_copyVoxelChunk.HasChunk) { m_ChunkMap = new Dictionary <string, Chunk>(_copyVoxelChunk.ChunkMap); } if (_copyVoxelChunk.HasModel) { m_ModelMap = new Dictionary <string, Chunk>(_copyVoxelChunk.ModelMap); } }
public IMesh CreateMesh(string meshname) { if (!m_MeshTemplateContainer.ContainsKey(meshname)) { IMesh mesh = Load(meshname); if (mesh != null && mesh.DoParse()) { m_MeshTemplateContainer.Add(meshname, mesh); } } Mesh_VoxelChunk meshInstance = new Mesh_VoxelChunk(m_MeshTemplateContainer[meshname]); meshInstance.m_InstanceID = s_UniqueInstanceID++; m_MeshInstanceContainer.Add(meshInstance.m_InstanceID, meshInstance); return meshInstance; }
public IMesh CreateMesh(string meshname) { if (!m_MeshTemplateContainer.ContainsKey(meshname)) { IMesh mesh = Load(meshname); if (mesh != null && mesh.DoParse()) { m_MeshTemplateContainer.Add(meshname, mesh); } } Mesh_VoxelChunk meshInstance = new Mesh_VoxelChunk(m_MeshTemplateContainer[meshname]); meshInstance.m_InstanceID = s_UniqueInstanceID++; m_MeshInstanceContainer.Add(meshInstance.m_InstanceID, meshInstance); return(meshInstance); }
public void StartMorphingModel(int _ChunkIndex, MODELTYPE _ModelType) { if (false == m_MorphingData.ContainsKey(_ChunkIndex)) { m_MorphingData.Add(_ChunkIndex, new MorphingStruct()); } MorphingStruct morphData = null; morphData = m_MorphingData[_ChunkIndex]; morphData.isInMorphing = true; string modelstr = GenerateModelStringFromTemplateSetting(_ChunkIndex, _ModelType); Mesh_VoxelChunk Mesh = m_ShareMeshData as Mesh_VoxelChunk; if (null != Mesh) { string chunkKey = GenerateChunkKeyFromIndex(_ChunkIndex); Mesh.StartMorphingModel(chunkKey, modelstr, morphData); } }