//Establish Connection IEnumerator StartConnection(Transform source, Transform target) { if (DataStore.Instance.AddConnectedDevices(source, target)) { Transform connection = Instantiate(ConnectionLine, Connections); connection.GetComponent <DeviceConnection>().Source = source; connection.GetComponent <DeviceConnection>().Target = target; LineRenderer lr = connection.GetComponent <LineRenderer>(); lr.transform.position = source.position; lr.SetPosition(0, source.position); lr.SetPosition(1, target.position); lr.material.mainTextureScale = new Vector3(Vector3.Distance(source.position, target.position), 1f, 1f); while (!lr.GetPosition(1).Equals(target.position)) { lr.SetPosition(1, Vector3.MoveTowards(lr.GetPosition(1), target.position, m_Connection_Speed_Line * Time.deltaTime)); yield return(new WaitForSeconds(m_Connection_Smooth_WaitFor)); } AddColliderToLine(connection, lr); } DeviceConnection dc = GetDeviceConnection(source, target); Transform parent = dc.transform; Transform connectionObject = Instantiate(Connection, parent); connectionObject.gameObject.GetComponent <DrawConnection>().Init(m_Connection_Duration).Connect(source, target, dc); }
public void Connect(Transform source, Transform target, DeviceConnection dc) { Debug.Log(source + " to " + target); _source = source; _target = target; SetMaterial(dc); _aLine.Enqueue(source.position); _aLine.Enqueue(target.position); _hasStarted = true; }
private void ShowConnectionData(DeviceConnection dc, Connection conn) { Vector3 position = Vector3.Lerp(dc.Source.position, dc.Target.position, 0.5f); Panels.GetComponent <PanelManager>().ShowPanel(dc, position, PanelType.Connection, conn); if (conn != null) { Debug.Log("Display data " + conn.Body + " of source: " + conn.Start.Name + " target: " + conn.Target.Name); } }
public void SetDataLayer(object sender) { if (sender.GetType() == typeof(GameObject)) { _device = sender as GameObject; } if (sender.GetType() == typeof(DeviceConnection)) { _deviceConnection = sender as DeviceConnection; } }
private void SetMaterial(DeviceConnection dc) { if (dc != null) { //Debug.Log(_line.material.name); //Debug.Log(_source.name + " vs " + dc.Source.name); //Debug.Log(_source.name.Equals(dc.Source.name)); _line.material = ConnectionUp; //if (_source.name.Equals(dc.Source.name)) // _line.material = ConnectionUp; //else // _line.material = ConnectionDown; //line.UpdateGIMaterials(); Debug.Log(_line.material.name); } }
private DeviceConnection GetDeviceConnection(Transform source, Transform target) { foreach (Transform connectionLine in Connections) { DeviceConnection dc = connectionLine.GetComponent <DeviceConnection>(); if (dc != null) { if (dc.Source.name.Equals(source.name, StringComparison.OrdinalIgnoreCase) && dc.Target.name.Equals(target.name, StringComparison.OrdinalIgnoreCase)) { return(dc); } else if (dc.Source.name.Equals(target.name, StringComparison.OrdinalIgnoreCase) && dc.Target.name.Equals(source.name, StringComparison.OrdinalIgnoreCase)) { return(dc); } } } return(null); }