private IEnumerator UnplugCooldown(ConnectorDragAndDrop connector) { yield return(unplugCooldownTime); connector.IsDragable = true; isReady = true; }
private void ConnectConnector(ConnectorDragAndDrop connector) { PlaySound(); Transform connectorTransform = connector.transform; Vector3 stuff = transform.eulerAngles - connectorTransform.eulerAngles; Vector3 rot = connectorTransform.transform.eulerAngles; Vector3 tmp = new Vector3(); LeanTween.value(gameObject, Vector3.zero, stuff, rotationTime).setOnUpdate((Vector3 angleOffset) => { tmp.Set(rot.x + angleOffset.x, rot.y + angleOffset.y, rot.z + angleOffset.z); connectorTransform.eulerAngles = tmp; }) .setEase(rotationEaseType); Vector3 pos = transform.position - connectorTransform.position - transform.forward * 0.15f; Vector3 oldPos = connectorTransform.position; LeanTween.value(gameObject, Vector3.zero, pos, positionTime).setOnUpdate((Vector3 newPos) => { connectorTransform.position = oldPos + newPos; }) .setEase(positionEaseType) .setOnComplete(() => { OnDustSuckerConnectionChanged(connector); }); }
private void OnDustSuckerConnectionChanged(ConnectorDragAndDrop connector) { isConnected = true; StartCoroutine(UnplugCooldown(connector)); if (DustSuckerConnection != null) { DustSuckerConnection(isConnected); } }
void OnTriggerEnter(Collider other) { if (isReady) { isReady = false; ConnectorDragAndDrop connector = other.gameObject.GetComponent <ConnectorDragAndDrop>(); if (connector != null) { InitConnectionSequence(connector); } } }
private void InitConnectionSequence(ConnectorDragAndDrop connector) { connector.IsDragable = false; ConnectConnector(connector); }