I finished Lerpz 3D tutorial and I solved the dead bodies issues. But I need help in the second problem: “The Laser Traps don’t kick the player away, so it is possible to lose all your health rather quickly.”
Did anyone have a solution? Thank you.
Here’s my crude butchery of a solution, in lasertrap.js
Uses same sound as getting hit by robotguards which isn’t ideal, because it’s using the existing ‘Slam’. It works for me using unity 3.4. Edit: and 3.5
function Update ()
{
var offset = (1 + Mathf.Sin(Time.time * speed + timingOffset)) * height / 2;
transform.position = originalPosition + Vector3(0, offset, 0);
if (Time.time > lastHitTime + 0.25 && Physics.Raycast(transform.position, transform.forward, hit, laserWidth))
{
if (hit.collider.tag == "Player" || hit.collider.tag == "Enemy")
{
Instantiate(hitEffect, hit.point, Quaternion.identity);
hit.collider.SendMessage("ApplyDamage", damage, SendMessageOptions.DontRequireReceiver);
lastHitTime = Time.time;
//activate slam on 3rdpersoncontroller to knock player back
var slamDirection = transform.InverseTransformDirection(target.position - transform.position);
slamDirection.y = 0;
slamDirection.z = 0.1;
if (slamDirection.x >= 0)
slamDirection.x = 0;
else
slamDirection.x = 0;
target.SendMessage("Slam", transform.TransformDirection(slamDirection));
}
}