Example #1
0
    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;
	}