private void New(VCESceneSetting setting) { m_Setting = setting; m_IsoData = new VCIsoData(); m_IsoData.Init(VCIsoData.ISO_VERSION, setting, new VCIsoOption(true)); m_IsoData.m_HeadInfo.Category = setting.m_Category; m_Stencil = new VCIsoData(); m_Stencil.Init(VCIsoData.ISO_VERSION, setting, new VCIsoOption(true)); m_TempIsoMat.Init(); m_DocumentPath = VCConfig.s_Categories[setting.m_Category].m_DefaultPath + "/Untitled" + VCConfig.s_IsoFileExt; int i = 2; while (File.Exists(VCConfig.s_IsoPath + m_DocumentPath)) { m_DocumentPath = VCConfig.s_Categories[setting.m_Category].m_DefaultPath + "/Untitled (" + i.ToString() + ")" + VCConfig.s_IsoFileExt; ++i; } VCEditor.Instance.m_MeshMgr.m_ColorMap = m_IsoData.m_Colors; m_MeshComputer = new VCMCComputer(); m_MeshComputer.Init(m_Setting.m_EditorSize, VCEditor.Instance.m_MeshMgr); m_CreationAttr = new CreationAttr(); #if false this.GenSomeVoxelForTest(); #endif }
public string[] ScenePaths() { VCESceneSetting scene = FindSceneSetting(); List <string> _scenes = new List <string> (); while (null != scene) { _scenes.Add(scene.m_Name); int pid = scene.m_ParentId; scene = null; foreach (VCESceneSetting ss in VCConfig.s_EditorScenes) { if (ss.m_Id == pid) { scene = ss; break; } } } if (_scenes.Count == 0) { return(new string[0]); } string[] scenes = new string[_scenes.Count]; int i = scenes.Length; foreach (string sp in _scenes) { scenes[--i] = sp; } scenes[0] = "Creation"; return(scenes); }
public VCEScene(string iso_path) { m_IsoData = new VCIsoData(); if (!LoadIso(iso_path)) { Destroy(); throw new Exception("Load ISO error"); } VCESceneSetting isosetting = m_IsoData.m_HeadInfo.FindSceneSetting(); if (isosetting != null) { m_Setting = isosetting; m_Stencil = new VCIsoData(); m_Stencil.Init(VCIsoData.ISO_VERSION, m_Setting, new VCIsoOption(true)); m_TempIsoMat.Init(); m_DocumentPath = iso_path; VCEditor.Instance.m_MeshMgr.m_ColorMap = m_IsoData.m_Colors; m_MeshComputer = new VCMCComputer(); m_MeshComputer.Init(m_Setting.m_EditorSize, VCEditor.Instance.m_MeshMgr); m_CreationAttr = new CreationAttr(); } else { Destroy(); throw new Exception("Scene setting error"); } }
// Init iso, destroy first, collections, header are ready. public void Init(int version, VCESceneSetting setting, VAOption options) { // Destroy old data Destroy(); // Init header data m_HeadInfo = new VCIsoHeadData(); m_HeadInfo.Version = version; m_HeadInfo.Category = setting.m_Category; m_HeadInfo.Author = ""; m_HeadInfo.Name = ""; m_HeadInfo.Desc = ""; m_HeadInfo.Remarks = "<REMARKS />"; m_HeadInfo.xSize = setting.m_EditorSize.x; m_HeadInfo.ySize = setting.m_EditorSize.y; m_HeadInfo.zSize = setting.m_EditorSize.z; m_HeadInfo.IconTex = new byte [0]; m_HeadInfo.EnsureIconTexValid(); // Allocate material, voxel, component, color. m_Materials = new VAMaterial [MAT_ARR_CNT]; m_DecalAssets = new VCDecalAsset[DECAL_ARR_CNT]; m_Voxels = new Dictionary <int, VCVoxel> (); m_Components = new List <VCComponentData> (); m_Colors = new Dictionary <int, Color32> (); // Option m_Options = options; }
private static void LoadEditorScenes() { s_EditorScenes = new List <VCESceneSetting> (); #if PLANET_EXPLORERS SqliteDataReader reader = LocalDatabase.Instance.ExecuteQuery("SELECT * FROM vc_scene"); while (reader.Read()) { VCESceneSetting scene = new VCESceneSetting(); scene.m_Id = Convert.ToInt32(reader.GetString(reader.GetOrdinal("id"))); scene.m_ParentId = Convert.ToInt32(reader.GetString(reader.GetOrdinal("parentid"))); scene.m_Name = reader.GetString(reader.GetOrdinal("name")); scene.m_Category = (EVCCategory)(Convert.ToInt32(reader.GetString(reader.GetOrdinal("category")))); List <string> parts = null; parts = VCUtils.ExplodeString(reader.GetString(reader.GetOrdinal("editorsize")), ';'); scene.m_EditorSize = new IntVector3(); scene.m_EditorSize.x = Convert.ToInt32(parts[0]); scene.m_EditorSize.y = Convert.ToInt32(parts[1]); scene.m_EditorSize.z = Convert.ToInt32(parts[2]); parts.Clear(); scene.m_VoxelSize = Convert.ToSingle(reader.GetString(reader.GetOrdinal("voxelsize"))); parts = VCUtils.ExplodeString(reader.GetString(reader.GetOrdinal("interval")), ';'); scene.m_MajorInterval = Convert.ToInt32(parts[0]); scene.m_MinorInterval = Convert.ToInt32(parts[1]); parts.Clear(); parts = VCUtils.ExplodeString(reader.GetString(reader.GetOrdinal("cost")), ';'); scene.m_BlockUnit = Convert.ToInt32(parts[0]); scene.m_DyeUnit = Convert.ToInt32(parts[1]); parts.Clear(); s_EditorScenes.Add(scene); } #endif }
// begin a template scene public static void NewScene(VCESceneSetting setting, int template) { if (s_Instance == null) { return; } // Close current scene first CloseScene(); // New VCEScene s_SceneId++; s_Scene = new VCEScene(setting, template); s_Scene.BuildScene(); Debug.Log("VCE new scene. sceneid = " + s_SceneId.ToString()); // After Scene Changed AfterSceneChanged(setting); if (OnSceneCreate != null) { OnSceneCreate(s_Scene); } // Show status string s = "New scene".ToLocalizationString() + " "; string[] scenepaths = s_Scene.m_IsoData.m_HeadInfo.ScenePaths(); foreach (string sp in scenepaths) { s += "[" + sp.ToLocalizationString() + "] "; } s += "is ready".ToLocalizationString() + " !"; VCEStatusBar.ShowText(s, 10, true); }
public virtual void Init(BehaviourController controller) { m_Controller = controller; m_SceneSetting = controller.creationController.creationData.m_IsoData.m_HeadInfo.FindSceneSetting(); m_DamageParticlePlayers = new List <VCParticlePlayer>(); m_ExplodeParticlePlayers = new List <VCParticlePlayer>(); VCParticlePlayer[] pps = GetComponentsInChildren <VCParticlePlayer>(false); foreach (VCParticlePlayer pp in pps) { if (pp.FunctionTag == VCParticlePlayer.ftDamaged) { m_DamageParticlePlayers.Add(pp); } else if (pp.FunctionTag == VCParticlePlayer.ftExplode) { m_ExplodeParticlePlayers.Add(pp); } } m_DestructTick = 120.0f; m_IsWreckage = false; m_Sinked = false; }
public static void DoCreateSceneFromMsgBox() { if (s_SceneToCreate == null) { s_SceneToCreate = VCConfig.FirstSceneSetting; } VCEditor.NewScene(s_SceneToCreate); }
public void OnItemClick(GameObject sender) { VCEUICreationTypeItem sender_item = sender.GetComponentInParent <VCEUICreationTypeItem>(); int usage = sender_item.usage; VCESceneSetting scene = sender_item.m_Scene; // 树形菜单 if (usage == 0) { parentId = scene.m_Id; m_BackButton.gameObject.SetActive(true); CreateChildItems(); } // 创建新的ISO else if (usage == 1) { parentId = scene.m_Id; m_BackButton.gameObject.SetActive(true); CreateChildItems(); } // 加载旧的ISO else if (usage == 2) { OnCloseClick(gameObject); VCEditor.Instance.m_UI.m_ISOTab.isChecked = true; VCEditor.Instance.m_UI.m_IsoTip.Show(); } // Template else if (usage == 3) { TextAsset asset = Resources.Load <TextAsset>("Isos/" + scene.m_Id.ToString() + "/index"); if (asset == null) { OnCloseClick(gameObject); VCEditor.NewScene(scene); return; } int count = 0; int.TryParse(asset.text, out count); if (count == 0) { OnCloseClick(gameObject); VCEditor.NewScene(scene); return; } int tmpIdx = (int)(Random.value * count - 0.00001f); OnCloseClick(gameObject); VCEditor.NewScene(scene, tmpIdx); } // Empty else if (usage == 4) { OnCloseClick(gameObject); VCEditor.NewScene(scene); } }
public override void Awake() { base.Awake(); var cc = GetComponent <CreationController>(); if (cc != null) { m_CreationData = cc.creationData; if (m_CreationData != null) { m_IsoData = m_CreationData.m_IsoData; m_SceneSetting = m_IsoData.m_HeadInfo.FindSceneSetting(); m_Attribute = m_CreationData.m_Attribute; m_MassCenter = m_Attribute.m_CenterOfMass; } } }
public void OnBtnClick() { if (m_SceneSetting.m_Category == EVCCategory.cgAbstract) { return; } UICamera.selectedObject = null; notExpandTime = 0; if (VCEHistory.s_Modified) { s_SceneToCreate = m_SceneSetting; VCEMsgBox.Show(VCEMsgBoxType.SWITCH_QUERY); } else { VCEditor.NewScene(m_SceneSetting); } }
public VCEScene(VCESceneSetting setting, int template) { TextAsset asset = Resources.Load <TextAsset>("Isos/" + setting.m_Id.ToString() + "/" + template.ToString()); if (asset == null) { New(setting); return; } m_IsoData = new VCIsoData(); if (!m_IsoData.Import(asset.bytes, new VCIsoOption(true))) { Destroy(); throw new Exception("Load Template ISO error"); } VCESceneSetting isosetting = m_IsoData.m_HeadInfo.FindSceneSetting(); if (isosetting != null) { m_Setting = isosetting; m_Stencil = new VCIsoData(); m_Stencil.Init(VCIsoData.ISO_VERSION, m_Setting, new VCIsoOption(true)); m_TempIsoMat.Init(); m_DocumentPath = VCConfig.s_Categories[setting.m_Category].m_DefaultPath + "/Untitled" + VCConfig.s_IsoFileExt; int i = 2; while (File.Exists(VCConfig.s_IsoPath + m_DocumentPath)) { m_DocumentPath = VCConfig.s_Categories[setting.m_Category].m_DefaultPath + "/Untitled (" + i.ToString() + ")" + VCConfig.s_IsoFileExt; ++i; } VCEditor.Instance.m_MeshMgr.m_ColorMap = m_IsoData.m_Colors; m_MeshComputer = new VCMCComputer(); m_MeshComputer.Init(m_Setting.m_EditorSize, VCEditor.Instance.m_MeshMgr); m_CreationAttr = new CreationAttr(); } else { Destroy(); throw new Exception("Scene setting error"); } }
public List <VCComponentData> FindComponentsAtPos(Vector3 wpos, int id = 0) { List <VCComponentData> list = new List <VCComponentData> (); VCESceneSetting setting = m_HeadInfo.FindSceneSetting(); if (setting == null) { return(list); } foreach (VCComponentData cdata in m_Components) { if (Vector3.Distance(cdata.m_Position, wpos) < setting.m_VoxelSize * 0.01f) { if (id == 0 || cdata.m_ComponentId == id) { list.Add(cdata); } } } return(list); }
public Vector3 ClampPointWorldCoord(Vector3 pos) { VCESceneSetting setting = m_HeadInfo.FindSceneSetting(); if (setting == null) { return(Vector3.zero); } float voxelsize = setting.m_VoxelSize; float sx = m_HeadInfo.xSize * voxelsize; float sy = m_HeadInfo.ySize * voxelsize; float sz = m_HeadInfo.zSize * voxelsize; if (pos.x < 0) { pos.x = 0; } else if (pos.x > sx) { pos.x = sx; } if (pos.y < 0) { pos.y = 0; } else if (pos.y > sy) { pos.y = sy; } if (pos.z < 0) { pos.z = 0; } else if (pos.z > sz) { pos.z = sz; } return(pos); }
public bool IsComponentIn(Vector3 pos) { VCESceneSetting setting = m_HeadInfo.FindSceneSetting(); if (setting == null) { return(false); } float voxelsize = setting.m_VoxelSize; if (pos.x < 0) { return(false); } if (pos.y < 0) { return(false); } if (pos.z < 0) { return(false); } if (pos.x > m_HeadInfo.xSize * voxelsize) { return(false); } if (pos.y > m_HeadInfo.ySize * voxelsize) { return(false); } if (pos.z > m_HeadInfo.zSize * voxelsize) { return(false); } return(true); }
public void OnSceneCreate() { if (VCEditor.DocumentOpen()) { VCESceneSetting setting = VCEditor.s_Scene.m_Setting; // Tab if (!m_ISOTab.isChecked) { m_PartTab.isChecked = true; } if (!VCEditor.s_Ready) { OnPartTab(false); OnMaterialTab(false); OnPaintTab(false); OnDecalTab(false); OnEffectTab(false); OnISOTab(false); m_PartTab.isChecked = true; } VCEditor.Instance.m_UI.m_IsoTip.Hide(); firstvalid = true; UpdateErrorLabel(); // Title label VCESceneSetting parentsetting = VCConfig.s_EditorScenes.Find(iter => iter.m_Id == setting.m_ParentId); if (parentsetting.m_Id == 1) { m_TitleLabel.text = setting.m_Name.ToUpper().ToLocalizationString(); } else { m_TitleLabel.text = parentsetting.m_Name.ToUpper().ToLocalizationString() + " - " + setting.m_Name.ToUpper().ToLocalizationString(); } if (VCEditor.s_Scene.m_Setting.m_Category == EVCCategory.cgObject) { m_TitleLabel.text = "OBJECT".ToLocalizationString() + " - " + m_TitleLabel.text.ToLocalizationString(); } m_SceneSizeLabel.text = " " + setting.EditorWorldSize.x.ToString("0.##") + "m x " + setting.EditorWorldSize.z.ToString("0.##") + "m x " + setting.EditorWorldSize.y.ToString("0.##") + "m"; m_SceneSizeLabel2.text = VCUtils.LengthToString(setting.m_MajorInterval * setting.m_VoxelSize) + "\r\n" + VCUtils.LengthToString(setting.m_MinorInterval * setting.m_VoxelSize) + "\r\n" + VCUtils.LengthToString(setting.m_VoxelSize); // Part List m_PartList.InitTypeList(); m_PartList.RefreshPartList(m_PartTypePopupList.selection); m_PartList.RepositionList(); // Material List m_MaterialList.InitMatterList(); m_MaterialList.RefreshMaterialList(m_MatterPopupList.selection); m_MaterialList.RepositionList(); // Decal List m_DecalList.RefreshDecalList(); m_DecalList.RepositionList(); // Iso List m_IsoList.RefreshIsoList(); m_IsoList.RepositionList(); // Stat m_StatPanel.SetIsoIcon(); m_StatPanel.OnCreationInfoRefresh(); } }
public static GameObject GetEffect(string effect, VCESceneSetting scene_setting) { if (Instance == null) { return(null); } if (scene_setting == null) { return(null); } int vsize_cm = Mathf.RoundToInt(scene_setting.m_VoxelSize * 100.0f); int ssize_x_m = Mathf.RoundToInt(scene_setting.EditorWorldSize.x); int ssize_z_m = Mathf.RoundToInt(scene_setting.EditorWorldSize.z); // [VCCase] - Get creation buff effect particle by VCESceneSetting // voxelsize = 3cm scene if (vsize_cm == 3) { if (effect.ToLower() == "fire") { return(Instance.Fire_3cm); } if (effect.ToLower() == "smoke") { return(Instance.Smoke_3cm); } if (effect.ToLower() == "wreckage spurt") { return(Instance.WreckageSpurt_3cm); } } // voxelsize = 10cm scene else if (vsize_cm == 10) { if (effect.ToLower() == "fire") { return(Instance.Fire_10cm); } if (effect.ToLower() == "smoke") { return(Instance.Smoke_10cm); } if (effect.ToLower() == "wreckage spurt") { return(Instance.WreckageSpurt_10cm); } } else { if (effect.ToLower() == "fire") { return(Instance.Fire_3cm); } if (effect.ToLower() == "smoke") { return(Instance.Smoke_3cm); } if (effect.ToLower() == "wreckage spurt") { return(Instance.WreckageSpurt_3cm); } } // 5m x 3m scene if (ssize_x_m == 3 && ssize_z_m == 5) { if (effect.ToLower() == "explode") { return(Instance.Explode_5x3m); } } // 16m x 8m scene else if (ssize_x_m == 8 && ssize_z_m == 16) { if (effect.ToLower() == "explode") { return(Instance.Explode_16x8m); } } else { if (effect.ToLower() == "explode") { return(Instance.Explode_5x3m); } } return(null); }
// new scene public VCEScene(VCESceneSetting setting) { New(setting); }
private static void AfterSceneChanged(VCESceneSetting setting) { // Mirror s_Mirror = new VCEMirrorSetting(); s_Mirror.Reset(setting.m_EditorSize.x, setting.m_EditorSize.y, setting.m_EditorSize.z); // Mesh manager VCEditor.Instance.m_MeshMgr.m_VoxelSize = s_Scene.m_Setting.m_VoxelSize; VCEditor.Instance.m_MeshMgr.m_MeshMat = s_Scene.m_TempIsoMat.m_EditorMat; // Set gameobject parameters // Camera float scale = setting.m_EditorSize.ToVector3().magnitude *setting.m_VoxelSize; s_Instance.m_MainCamera.nearClipPlane = setting.m_VoxelSize * 0.5f; s_Instance.m_MainCamera.farClipPlane = scale * 5F; VCECamera vce_camera = s_Instance.m_MainCamera.GetComponent <VCECamera>(); if (s_Scene.m_IsoData.m_Voxels.Count == 0) { vce_camera.BeginTarget = setting.m_EditorSize.ToVector3() * setting.m_VoxelSize * 0.5F; vce_camera.BeginTarget.y = 0; vce_camera.BeginDistance = new Vector2(setting.m_EditorSize.x, setting.m_EditorSize.z).magnitude *setting.m_VoxelSize * 1.2F; vce_camera.MinDistance = setting.m_VoxelSize * 0.5f; vce_camera.MaxDistance = scale * 3F; vce_camera.Reset(); } else { vce_camera.BeginTarget = setting.m_EditorSize.ToVector3() * setting.m_VoxelSize * 0.5F; vce_camera.BeginDistance = setting.m_EditorSize.ToVector3().magnitude *setting.m_VoxelSize * 1.2F; vce_camera.MinDistance = setting.m_VoxelSize * 0.5f; vce_camera.MaxDistance = scale * 3F; vce_camera.Reset(); } // GLs GLGridPlane[] gps = s_Instance.m_GLGroup.GetComponentsInChildren <GLGridPlane>(true); GLBound[] gbs = s_Instance.m_GLGroup.GetComponentsInChildren <GLBound>(true); foreach (GLGridPlane gp in gps) { gp.m_CellCount = new IntVector3(setting.m_EditorSize.x, setting.m_EditorSize.y, setting.m_EditorSize.z); gp.m_CellSize = Vector3.one * setting.m_VoxelSize; gp.m_MajorGridInterval = setting.m_MajorInterval; gp.m_MinorGridInterval = setting.m_MinorInterval; gp.m_Fdisk = setting.m_Category == EVCCategory.cgDbSword; } foreach (GLBound gb in gbs) { gb.m_Bound = new Bounds(Vector3.zero, Vector3.zero); gb.m_Bound.SetMinMax(Vector3.zero, setting.m_EditorSize.ToVector3() * setting.m_VoxelSize); } // UIs s_Instance.m_UI.OnSceneCreate(); // VARS // Recent vars VCESelectMethod_Box.s_RecentDepth = 1; VCESelectMethod_Box.s_RecentFeatherLength = 0; VCESelectMethod_Box.s_RecentPlaneFeather = true; // Selected SelectedColor = Color.white; }
private void BuildStructure() { m_Prefab = new GameObject("Creation_" + m_ObjectID.ToString() + " (" + m_IsoData.m_HeadInfo.Name + ")"); m_Prefab.transform.parent = VCEditor.Instance.m_CreationGroup.transform; m_Prefab.transform.localPosition = Vector3.zero; m_Prefab.layer = VCConfig.s_ProductLayer; m_Prefab.SetActive(false); m_Root = new GameObject("Root"); m_Root.transform.parent = m_Prefab.transform; m_Root.transform.localPosition = Vector3.zero; m_Root.layer = VCConfig.s_ProductLayer; m_PartGroup = new GameObject("Parts"); m_PartGroup.transform.parent = m_Root.transform; m_PartGroup.transform.localPosition = Vector3.zero; m_PartGroup.layer = VCConfig.s_ProductLayer; m_MeshGroup = new GameObject("Meshes"); m_MeshGroup.transform.parent = m_Root.transform; m_MeshGroup.transform.localPosition = Vector3.zero; m_MeshGroup.layer = VCConfig.s_ProductLayer; m_DecalGroup = new GameObject("Decals"); m_DecalGroup.transform.parent = m_Root.transform; m_DecalGroup.transform.localPosition = Vector3.zero; m_DecalGroup.layer = VCConfig.s_ProductLayer; m_EffectGroup = new GameObject("Effects"); m_EffectGroup.transform.parent = m_Root.transform; m_EffectGroup.transform.localPosition = Vector3.zero; m_EffectGroup.layer = VCConfig.s_ProductLayer; m_RootL = new GameObject("Root_L"); m_RootL.transform.parent = m_Prefab.transform; m_RootL.transform.localPosition = Vector3.zero; m_RootL.layer = VCConfig.s_ProductLayer; m_PartGroupL = new GameObject("Parts_L"); m_PartGroupL.transform.parent = m_RootL.transform; m_PartGroupL.transform.localPosition = Vector3.zero; m_PartGroupL.layer = VCConfig.s_ProductLayer; m_MeshGroupL = new GameObject("Meshes_L"); m_MeshGroupL.transform.parent = m_RootL.transform; m_MeshGroupL.transform.localPosition = Vector3.zero; m_MeshGroupL.layer = VCConfig.s_ProductLayer; m_DecalGroupL = new GameObject("Decals_L"); m_DecalGroupL.transform.parent = m_RootL.transform; m_DecalGroupL.transform.localPosition = Vector3.zero; m_DecalGroupL.layer = VCConfig.s_ProductLayer; m_EffectGroupL = new GameObject("Effects_L"); m_EffectGroupL.transform.parent = m_RootL.transform; m_EffectGroupL.transform.localPosition = Vector3.zero; m_EffectGroupL.layer = VCConfig.s_ProductLayer; bool dbRoot = m_IsoData.m_HeadInfo.Category == EVCCategory.cgDbSword; VCESceneSetting sceneSetting = m_IsoData.m_HeadInfo.FindSceneSetting(); foreach (VCComponentData cdata in m_IsoData.m_Components) { if (cdata.m_Type == EVCComponent.cpDecal) { if (dbRoot) { bool isleft = cdata.m_Position.x < 0.5f * m_IsoData.m_HeadInfo.xSize * sceneSetting.m_VoxelSize; if (isleft) { cdata.CreateEntity(false, m_DecalGroupL.transform); } else { cdata.CreateEntity(false, m_DecalGroup.transform); } } else { cdata.CreateEntity(false, m_DecalGroup.transform); } } else if (cdata.m_Type == EVCComponent.cpEffect) { if (dbRoot) { bool isleft = cdata.m_Position.x < 0.5f * m_IsoData.m_HeadInfo.xSize * sceneSetting.m_VoxelSize; if (isleft) { cdata.CreateEntity(false, m_EffectGroupL.transform); } else { cdata.CreateEntity(false, m_EffectGroup.transform); } } else { cdata.CreateEntity(false, m_EffectGroup.transform); } } else if (cdata.m_Type == EVCComponent.cpDbSwordHilt) { if ((cdata as VCFixedHandPartData).m_LeftHand) { cdata.CreateEntity(false, m_PartGroupL.transform); VCParticlePlayer pp = cdata.m_Entity.AddComponent <VCParticlePlayer>(); pp.FunctionTag = VCParticlePlayer.ftDamaged; pp.LocalPosition = cdata.m_Entity.GetComponent <VCEComponentTool>().m_SelBound.transform.localPosition; m_MeshMgrL = m_MeshGroupL.AddComponent <VCMeshMgr>(); m_MeshMgrL.m_VoxelSize = sceneSetting.m_VoxelSize; m_MeshMgrL.m_ColorMap = m_IsoData.m_Colors; m_MeshMgrL.m_ColliderDirty = false; m_MeshMgrL.m_MeshMat = null; m_MeshMgrL.m_DaggerMesh = true; m_MeshMgrL.m_LeftSidePos = cdata.m_Position.x < 0.5f * m_IsoData.m_HeadInfo.xSize * sceneSetting.m_VoxelSize; m_MeshMgrL.Init(); } else { cdata.CreateEntity(false, m_PartGroup.transform); VCParticlePlayer pp = cdata.m_Entity.AddComponent <VCParticlePlayer>(); pp.FunctionTag = VCParticlePlayer.ftDamaged; pp.LocalPosition = cdata.m_Entity.GetComponent <VCEComponentTool>().m_SelBound.transform.localPosition; m_MeshMgr = m_MeshGroup.AddComponent <VCMeshMgr>(); m_MeshMgr.m_VoxelSize = sceneSetting.m_VoxelSize; m_MeshMgr.m_ColorMap = m_IsoData.m_Colors; m_MeshMgr.m_ColliderDirty = false; m_MeshMgr.m_MeshMat = null; m_MeshMgr.m_DaggerMesh = true; m_MeshMgr.m_LeftSidePos = cdata.m_Position.x < 0.5f * m_IsoData.m_HeadInfo.xSize * sceneSetting.m_VoxelSize; m_MeshMgr.Init(); } } else { cdata.CreateEntity(false, m_PartGroup.transform); VCParticlePlayer pp = cdata.m_Entity.AddComponent <VCParticlePlayer>(); pp.FunctionTag = VCParticlePlayer.ftDamaged; pp.LocalPosition = cdata.m_Entity.GetComponent <VCEComponentTool>().m_SelBound.transform.localPosition; m_MeshMgr = m_MeshGroup.AddComponent <VCMeshMgr>(); m_MeshMgr.m_VoxelSize = sceneSetting.m_VoxelSize; m_MeshMgr.m_ColorMap = m_IsoData.m_Colors; m_MeshMgr.m_ColliderDirty = false; m_MeshMgr.m_MeshMat = null; m_MeshMgr.m_DaggerMesh = false; m_MeshMgr.m_LeftSidePos = false; m_MeshMgr.Init(); } } if (m_MeshMgr == null) { m_MeshMgr = m_MeshGroup.AddComponent <VCMeshMgr>(); m_MeshMgr.m_VoxelSize = sceneSetting.m_VoxelSize; m_MeshMgr.m_ColorMap = m_IsoData.m_Colors; m_MeshMgr.m_ColliderDirty = false; m_MeshMgr.m_MeshMat = null; m_MeshMgr.m_DaggerMesh = false; m_MeshMgr.m_LeftSidePos = false; m_MeshMgr.Init(); } }