public void Init(LightLine ll) { line = ll; localStart = transform.InverseTransformPoint(line.point1.transform.position); localEnd = transform.InverseTransformPoint(line.point2.transform.position); GameObject effectGO = Instantiate(SettingsManager.I.roomSettings.lightPathEffect, transform); effectGO.transform.localPosition = Vector3.zero; psEmission = effectGO.GetComponent <ParticleSystem>().emission; prevLocalPos = transform.localPosition; }
public static LightLine BuildLine(Transform parent, string name, LightPoint p1, LightPoint p2) { GameObject pathObj = new GameObject("Line-" + name, typeof(MeshFilter), typeof(MeshRenderer)); pathObj.transform.SetParent(parent, false); MeshRenderer renderer = pathObj.GetComponent <MeshRenderer>(); renderer.sharedMaterial = SettingsManager.I.activeRoomnet.pathMaterial; LightLine lightLine = pathObj.AddComponent <LightLine>(); lightLine.point1 = p1; lightLine.point2 = p2; p1.RegisterConnected(lightLine); p2.RegisterConnected(lightLine); GameObject effectGO = new GameObject("Effect"); effectGO.transform.SetParent(pathObj.transform, false); LightLineEffect effect = effectGO.AddComponent <LightLineEffect>(); effect.Init(lightLine); return(lightLine); }