// Update is called once per frame void Update() { if (controlledEnemy != null) { Vector3 move = new Vector3(Input.GetAxis("Horizontal"), Input.GetAxis("Vertical"), 0); controlledEnemy.move(move); if (Input.GetKey(KeyCode.Z)) { controlledEnemy.basicAttack(); } if (Input.GetKeyDown(KeyCode.X)) { if (!isTransmitting && playerTransmissionJuice > 0) { GameObject.Find("Game").GetComponent <SoundManager>().playTransmit(); isTransmitting = true; GameObject enemyObj = findClosest(); PossessableEnemy e = enemyObj.GetComponent <PossessableEnemy>(); if (e != null) { leaveControlledEnemy(); setControlledEnemy(e); e.transmitTo(); this.playerTransmissionJuice = Mathf.Max(0, playerTransmissionJuice - LOSSONTRANSMIT); } else { //nothing to transmit to Debug.Log("Not Implemented Exception"); } StartCoroutine("reloadTransmission"); } } Vector3 pos = Camera.main.WorldToViewportPoint(controlledEnemy.transform.position); pos.x = Mathf.Clamp01(pos.x); pos.y = Mathf.Clamp01(pos.y); controlledEnemy.transform.position = Camera.main.ViewportToWorldPoint(pos); } }