private void OnTriggerEnter(Collider other) { if (other.gameObject.tag == "Player") { direction = other.gameObject.GetComponent <PlayerMovement>().forward; Debug.Log("In!"); //if (other.gameObject.GetComponent<PlayerMovement>().gate == number && targetMain.setGo) //{ // targetMain.rotMult = -targetMain.rotMult; //} //else //{ // targetMain.setGo = true; //} if (direction) { other.gameObject.GetComponent <PlayerMovement>().prevNode = gameObject; other.gameObject.GetComponent <PlayerMovement>().nextNode = next; targetMain.rotMult = -1; } else { other.gameObject.GetComponent <PlayerMovement>().prevNode = prev; other.gameObject.GetComponent <PlayerMovement>().nextNode = gameObject; targetMain.rotMult = 1; } other.gameObject.GetComponent <PlayerMovement>().gate = number; other.transform.rotation = other.transform.rotation * Quaternion.Euler(0, 30 * targetMain.rotMult, 0); } else if (other.gameObject.tag == "Enemy" && other.gameObject.GetComponent <WaypointRead>() == null) { Debug.Log("Got Enemy!"); if (other.gameObject.GetComponent <EnemyController>().forward) { other.gameObject.GetComponent <EnemyController>().prevNode = gameObject; other.gameObject.GetComponent <EnemyController>().nextNode = next; other.gameObject.GetComponent <EnemyController>().rotMult = 1; other.gameObject.GetComponent <EnemyController>().updateTargets(); } else { other.gameObject.GetComponent <EnemyController>().prevNode = prev; other.gameObject.GetComponent <EnemyController>().nextNode = gameObject; other.gameObject.GetComponent <EnemyController>().rotMult = -1; other.gameObject.GetComponent <EnemyController>().updateTargets(); } other.transform.rotation = other.transform.rotation * Quaternion.Euler(0, 30 * targetMain.rotMult, 0); } else { WaypointRead node = other.gameObject.GetComponent <WaypointRead>(); if (node != null && node.forward) { other.gameObject.GetComponent <WaypointRead>().prevNode = gameObject; other.gameObject.GetComponent <WaypointRead>().nextNode = next; } else if (node != null) { other.gameObject.GetComponent <WaypointRead>().prevNode = prev; other.gameObject.GetComponent <WaypointRead>().nextNode = gameObject; } } }
// Update is called once per frame void Update() { swing.SetBool("swing", false); if (!firstSet && scale.value != 0) { firstSet = true; } if (health.isDead) { motion.SetBool("DEAD", true); rb.useGravity = true; weapon.AddComponent <Rigidbody>(); Rigidbody t = weapon.GetComponent <Rigidbody>(); t.isKinematic = false; t.useGravity = true; t.mass = 1; Destroy(this); } OnGround = Physics.Raycast(transform.position, Vector3.down, detectLength, groundLayer); moveDirection = transform.position; //Run when hold left shift if (Input.GetKey(KeyCode.LeftShift)) { speed = 10f; motion.SetInteger("speed", 10); } else { speed = 5f; motion.SetInteger("speed", 5); } reload = moveDirection.y; //Moving left and right if (Input.GetKey(KeyCode.A)) { forward = false; anim.SetBool("Forward", forward); target = prevNode.transform.position; target.y = transform.position.y; moveDirection = Vector3.MoveTowards(moveDirection, target, speed * Time.deltaTime); //Walking sounds if (OnGround && !walking) { StartCoroutine(sound); walking = true; } else if (!OnGround) { StopCoroutine(sound); walking = false; } if (speed == 10 && OnGround) { run.enableEmission = true; } else { run.enableEmission = false; } } else if (Input.GetKey(KeyCode.D)) { forward = true; anim.SetBool("Forward", forward); target = nextNode.transform.position; target.y = transform.position.y; moveDirection = Vector3.MoveTowards(moveDirection, target, speed * Time.deltaTime); //Walking sounds if (OnGround && !walking) { StartCoroutine(sound); walking = true; } else if (!OnGround) { StopCoroutine(sound); walking = false; } if (speed == 10 && OnGround) { run.enableEmission = true; } else { run.enableEmission = false; } } //else if (Input.GetKey(KeyCode.L)) //{ // rb.AddForce(body.transform.forward * 25, ForceMode.Force); //} else { motion.SetInteger("speed", 0); //Walking sounds StopCoroutine(sound); walking = false; } if (doMove) { //Update position moveDirection.y = reload; //transform.position = moveDirection; rb.MovePosition(moveDirection); } //On Ground, Jump, and Gravity if (OnGround) { canJump = true; shell.SetBool("grounded", true); shell.SetBool("canJump", true); rb.useGravity = false; if (Input.GetButtonDown("Jump")) { Jump(); shell.SetBool("grounded", false); } } else { if (Input.GetButtonDown("Jump") && canJump) { canJump = false; shell.SetBool("canJump", false); Jump(); } Vector3 phys = gravity * fallMult * Vector3.down; rb.AddForce(phys, ForceMode.Acceleration); } //Bullet Functions if (Input.GetButtonDown("Fire1") && firstSet && down == 0) { down = 1; Rigidbody instantiatedProjectile = Instantiate(Projectile, new Vector3(spawn.transform.position.x, spawn.transform.position.y, spawn.transform.position.z), transform.rotation) as Rigidbody; Physics.IgnoreCollision(instantiatedProjectile.GetComponent <Collider>(), GetComponent <Collider>()); if (scale.value > 0) { instantiatedProjectile.GetComponent <Light>().color = new Color(1f, 0.8053272f, 0.3915094f); instantiatedProjectile.transform.GetChild(1).GetComponent <ParticleSystem>().startColor = new Color(1f, 0.8053272f, 0.3915094f); } else if (scale.value < 0) { instantiatedProjectile.GetComponent <Light>().color = new Color(0.7013627f, 0.2923638f, 0.8490566f); instantiatedProjectile.transform.GetChild(1).GetComponent <ParticleSystem>().startColor = new Color(0.7013627f, 0.2923638f, 0.8490566f); } //if(forward) //instantiatedProjectile.velocity = transform.TransformDirection(new Vector3(0, 0, 100f)); //else // instantiatedProjectile.velocity = transform.TransformDirection(new Vector3(0, 0, -100f)); WaypointRead read = instantiatedProjectile.gameObject.GetComponent <WaypointRead>(); read.forward = forward; read.nextNode = nextNode; read.prevNode = prevNode; } if (Input.GetButtonDown("Fire2")) { swing.SetBool("swing", true); } }