/// <summary> /// Adds an OutlineGlowRender to the internal dictionary and returns an id, which the renderer has been given. /// NOTE: This method does not check, wether the object is already in the dictionary. So be careful if you call it yourself. /// </summary> /// <param name="renderer">The renderer which should be added.</param> /// <returns>Assigned id</returns> public int AddRenderer(OutlineGlowRenderer renderer) { for (int i = 0; i < int.MaxValue - 1; i++) { if (!renderers.ContainsKey(i)) { renderers.Add(i, renderer); return(i); } } //If for some reason this method really returns -1, then there's something badly wrong. return(-1); }
public static SyncSkinned Begin(SkinnedMeshRenderer smr, OutlineGlowRenderer parent) { SyncSkinned child = smr.GetComponentInChildren(typeof(SyncSkinned)) as SyncSkinned; if (child == null) { GameObject cgo = new GameObject("copy_smr"); cgo.SetActive(false); child = cgo.AddComponent <SyncSkinned>(); Transform childtran = cgo.transform; childtran.parent = smr.transform; childtran.localPosition = Vector3.zero; childtran.localRotation = Quaternion.identity; childtran.localScale = Vector3.one; child.parent = parent; cgo.SetActive(true); } child.smr = smr; return(child); }