private static extern Actor ICall_Component_GetOwner(Component self);
private static extern void ICall_Component_Release(Component self);
private static extern bool ICall_Component_Active(Component self);
private static extern Component ICall_Actor_RemoveComponent(Actor self, Component comp);
/// <summary> /// 通过组件的字符串名称来获取当前Actor的组件实例 /// </summary> /// <param name="sName">组件的字符串名称</param> /// <returns>返回组件的实例,如果组件不存在返回NULL</returns> public Component GetComponent(String sName) { Component com = ICall_Actor_GetComponentByName(this, sName); return(com); }
// - private function private void DeAssignComponent(Component component) { System.Type comType = component.GetType(); if (AnimationComponent.thisType == comType) { m_animationComponent = null; } else if (MeshRenderComponent.thisType == comType) { m_meshRenderComponent = null; } else if (SkinnedMeshRenderComponent.thisType == comType) { m_skinnedMeshRenderComponent = null; } else if (ProjectorRenderComponent.thisType == comType) { m_projectorRenderComponent = null; } else if (SkeletonComponent.thisType == comType) { m_skeletonComponent = null; } else if (ParticleRenderComponent.thisType == comType) { m_particleRenderComponent = null; } else if (ScriptComponent.thisType == comType) { m_scriptComponent = null; } else if (CameraComponent.thisType == comType) { m_cameraComponent = null; } else if (SoundSource.thisType == comType) { m_SoundSource = null; } else if (SpriteRenderComponent.thisType == comType) { m_spriteRenderComponent = null; } #if FMOD_IMPLEMENT else if (SoundReverbZone.thisType == comType) { m_SoundReverb = null; } else if (SoundHighPassFilterComponent.thisType == comType) { m_HighPassFilter = null; } else if (SoundLowPassFilterComponent.thisType == comType) { m_LowPassFilter = null; } else if (SoundChorusFilterComponent.thisType == comType) { m_ChorusFilter = null; } else if (SoundDistortionFilterComponent.thisType == comType) { m_DistortionFilter = null; } else if (SoundEchoFilterComponent.thisType == comType) { m_EchoFilter = null; } else if (SoundReverbFilterComponent.thisType == comType) { m_ReverbFilter = null; } #endif }
// - private function private void AssignComponent(Component component) { System.Type comType = component.GetType(); if (AnimationComponent.thisType == comType) { m_animationComponent = component as AnimationComponent; } else if (MeshRenderComponent.thisType == comType) { m_meshRenderComponent = component as MeshRenderComponent; } else if (SkinnedMeshRenderComponent.thisType == comType) { m_skinnedMeshRenderComponent = component as SkinnedMeshRenderComponent; } else if (ProjectorRenderComponent.thisType == comType) { m_projectorRenderComponent = component as ProjectorRenderComponent; m_projectorRenderComponent.EnableProjector = true; m_projectorRenderComponent.SetMaterialID(0, "sys:projector.material", false); } else if (SkeletonComponent.thisType == comType) { m_skeletonComponent = component as SkeletonComponent; } else if (ParticleRenderComponent.thisType == comType) { m_particleRenderComponent = component as ParticleRenderComponent; } else if (SpriteRenderComponent.thisType == comType) { m_spriteRenderComponent = component as SpriteRenderComponent; } else if (ScriptComponent.thisType == comType) { m_scriptComponent = component as ScriptComponent; } else if (CameraComponent.thisType == comType) { m_cameraComponent = component as CameraComponent; } else if (SoundSource.thisType == comType) { m_SoundSource = component as SoundSource; } #if FMOD_IMPLEMENT else if (SoundReverbZone.thisType == comType) { m_SoundReverb = component as SoundReverbZone; } else if (SoundHighPassFilterComponent.thisType == comType) { m_HighPassFilter = component as SoundHighPassFilterComponent; } else if (SoundLowPassFilterComponent.thisType == comType) { m_LowPassFilter = component as SoundLowPassFilterComponent; } else if (SoundChorusFilterComponent.thisType == comType) { m_ChorusFilter = component as SoundChorusFilterComponent; } else if (SoundDistortionFilterComponent.thisType == comType) { m_DistortionFilter = component as SoundDistortionFilterComponent; } else if (SoundEchoFilterComponent.thisType == comType) { m_EchoFilter = component as SoundEchoFilterComponent; } else if (SoundReverbFilterComponent.thisType == comType) { m_ReverbFilter = component as SoundReverbFilterComponent; } #endif }