void OnCollisionEnter(Collision other) { if (other.gameObject.tag == "RicochetMaterial" || other.gameObject.tag == "Player") { bladeEffectAudioSource.clip = bladeHitWalls; bladeEffectAudioSource.pitch = Random.Range(defaultEffectPitch - pitchRangeOffset, defaultEffectPitch + pitchRangeOffset); if (other.gameObject.tag == "Player") { bladeEffectAudioSource.clip = bladeHitPlayer; bladeEffectAudioSource.pitch = Random.Range(defaultEffectPitch - pitchRangeOffset, defaultEffectPitch + pitchRangeOffset); Rigidbody playerRigidbody = other.gameObject.GetComponent <Rigidbody>(); PlayerControl4 playerControl4 = other.gameObject.GetComponent <PlayerControl4>(); playerControl4.playerDead = true; playerControl4.dustTrail.gameObject.SetActive(false); playerRigidbody.freezeRotation = false; playerRigidbody.AddForce(bladeDirBenchmark.forward.normalized * impulseForce, ForceMode.Impulse); } Vector3 reflectDir = Vector3.Reflect(bladeRay.direction, other.contacts[0].normal); float rotation = 90 - Mathf.Atan2(reflectDir.z, reflectDir.x) * Mathf.Rad2Deg; bladeDirBenchmark.eulerAngles = new Vector3(0f, rotation, 0f); if (movingSpeed < maximumSpeed[level04.roundNumber - 1]) { movingSpeed += reflectSpeedInterval; } bladeEffectAudioSource.Play(); } }
public void Setup4() { playerControl4 = playerInstance.GetComponent <PlayerControl4>(); canPause = playerInstance.GetComponent <CanPause>(); playerMesh = playerInstance.GetComponent <MeshRenderer>(); playerRigidbody = playerInstance.GetComponent <Rigidbody>(); canPause.playerNumber = playerNumber; playerControl4.playerNumber = playerNumber; playerControl4.componentOwner = this; roundPanelInput = false; Material[] materials = playerMesh.materials; materials[2].color = playerColor; }