void OnEnable() { SelectorHelperClass _target = (SelectorHelperClass)target; GeometryVsTerrainBlend script = (GeometryVsTerrainBlend)_target.transform.parent.GetComponent(typeof(GeometryVsTerrainBlend)); if (script && script.dont_select_aux_object) { if (Selection.activeGameObject == _target.gameObject) { Selection.activeGameObject = _target.transform.parent.gameObject; } } }
private void CleanUpAfterRemovingTris(GeometryVsTerrainBlend _target) { MeshFilter mf=_target.gameObject.GetComponent(typeof(MeshFilter)) as MeshFilter; RemoveUnusedVerts(mf); if (_target.GetComponent<Collider>() && _target.GetComponent<Collider>() is MeshCollider) { if (mf) { (_target.GetComponent<Collider>() as MeshCollider).sharedMesh=mf.sharedMesh; } } Transform tr=_target.transform.FindChild("RTP_blend_underlying"); if (tr!=null) { GameObject go=tr.gameObject; mf=(MeshFilter)go.GetComponent(typeof(MeshFilter)); RemoveUnusedVerts(mf); } }
private void CheckShaderForBlendCapability(GeometryVsTerrainBlend _target=null) { if (_target==null) _target=(GeometryVsTerrainBlend)target; _target.shader_global_blend_capabilities=false; if (_target.GetComponent<Renderer>().sharedMaterial) { Shader shad=_target.GetComponent<Renderer>().sharedMaterial.shader; string path=AssetDatabase.GetAssetPath(shad); if (path!="" && (path.IndexOf("builtin")<0)) { string _code = System.IO.File.ReadAllText(path); if (_code.IndexOf("_TERRAIN_PosSize")>0) { _target.shader_global_blend_capabilities=true; _target.SyncMaterialProps(); } } } }
void RegisterUndoForMeshes(GeometryVsTerrainBlend _target=null) { if (_target==null) _target=(GeometryVsTerrainBlend)target; UnityEngine.Object[] objs=new UnityEngine.Object[4]; objs[0]=(_target.gameObject.GetComponent (typeof(MeshFilter)) as MeshFilter); objs[1]=(_target.gameObject.GetComponent (typeof(Collider)) as Collider); if (objs[1]==null) objs[1]=_target; // no collider would crash U4.3 if (_target.GetUnderlyingGameObject()) { objs[2]=(_target.GetUnderlyingGameObject().GetComponent (typeof(MeshFilter)) as MeshFilter); } else { // voxel sticked nie ma underlying objs[2]=_target; } objs[3]=_target; #if UNITY_3_5 || UNITY_4_0 || UNITY_4_1 || UNITY_4_2 Undo.RegisterUndo( objs, "Geometry Blend Edit"); #else Undo.RecordObjects( objs, "Geometry Blend Edit"); #endif string nam=(_target.gameObject.GetComponent (typeof(MeshFilter)) as MeshFilter).sharedMesh.name; _target.pmesh=(_target.gameObject.GetComponent (typeof(MeshFilter)) as MeshFilter).sharedMesh=Instantiate((_target.gameObject.GetComponent (typeof(MeshFilter)) as MeshFilter).sharedMesh) as Mesh; _target.pmesh.name=nam; }