- Home /
Character lasergun?
Hi, I've been looking for a scrip that creates a laser from the characters gun. The game is in Top-down view and so i don't want a cursor or anything i just want a laser to go from the specific character point(Maybe an object that beams out the laser forward of the character?). However, I managed to make a laser with the class LineRenderer, but... I wasn't able to get it to follow the character while he was turning or even get it too look right since it's "glowing". I want a red and transparent straight line to go forward.
So to define exactly what i'm looking for i'll list it nicely:
A "laserbeam" (Red and transparent)
Coming from an object which is connected to the Player prefab (So it will follow while the character spinns)
stops when hitting a tree or another object
(- and can be turned off by a button click)
Nor should it continue forward for all eternity either, the line length should be editable. Could this be done by using some kind if sprite? How?
I know its much to ask for but i've been looking everywhere for this!:shock: Would be nice if this could be shared with the Unity3D community since all i've found is people who are looking for the exact same thing.
Ps: Scripting isn't my strong side so be nice & explain carefully!
Thanks, N0tiC!
Answer by Joshua · Apr 01, 2011 at 01:08 AM
I have a script where I'm doing something like this, but with several lines. Ingore the 'first line' part of the script, just read 'laser'. I should've edited but.. I'm lazy. ;)
var maxDistance : float = 2
function Start () { GetComponent(LineRenderer).useWorldSpace = true; }
function Update () { var laser = GetComponent(LineRenderer); var forward = transform.forward; var hit : RaycastHit;
firstLine.SetPosition(0, transform.position);
if(Physics.Raycast(transform.position, forward, hit) && Vector3.Distance(transform,position, hit) >= maxDistance)){
laser.SetPosition(1, hit.point);
}
else{
laser.SetPosition(1, transform.TransformDirection(0, 0, MaxDistance));
}
}
Attach this to an empty gameobject which is childed to your gun. Make sure the z-axis is pointing 'character forward'.
I could definetly need help finding the laser material. It would be super if you could mail the material to me! Quick question: Why is the "laser" going towards the corner?
right so i didn't alter the script because I'm lazy. where it says cueForward is where it is casting forward ( on the z axis). Alter this to change it.
I've tested what i know and i can't figure out how to do this. The object has the Line Renderer attached to it and its rendering alright. However, the object which i placed in center of the player suddenly moved to the corner and cannot be moved(Doesn't move visualy in the editor, just "in-game", going straight to where it's not suppose to go.).
And i'm pretty sure it's going from the object and hitting the player...
Hmm... This is not going anywhere... So i decided to make it very simple for now and get back to it later on(When there finaly is something to work with.). Anyhow... Now: http://xlentprojects.se/laser.jpg
Do you have all this done on an empty game object, which is childed to your 'character' or gun with the z axis pointing player - forward? Also, please upvote/select the answer as correct if it's done :) it's nice for me + it will stop the bot from bumping your question for no reason
Your answer
Follow this Question
Related Questions
Beam Weapon 1 Answer
Switching weapons animation with mecanim? 2 Answers
Animation system 1 Answer
How to draw beams? 2 Answers
How to do I create Laser light ? 2 Answers