- Home /
melee attack with raycast
hey, im trying to make a melee attack script, and for this im using a raycast from the camera to in the direction it is pointing. anyway i cant figure out how to meke the ray go in the direction the camera is pointing. here is the script im using:
#pragma strict
//ray
var distance : int = 3;
var target : Transform;
var direction : Transform;
//attack
var damage : int;
var canAttack : boolean;
var maxDistance : int;
var currDistance : Vector3;
var currAngle : Quaternion;
var minAngle : Vector2;
var maxAngle : Vector2;
//health bar
var healthBarSize : Vector2;
var ennemyHealth : health;
function Start (){
Screen.lockCursor = true;
}
function Update (){
// detect the target
var hit : RaycastHit;
var ray : Ray;
if (Physics.Raycast(transform.position, /*(here idk what to do)*/, hit, distance)){
target = hit.transform;
}
else{
target = null;
}
//get enemy health
if (target != null){
ennemyHealth = target.GetComponent("health");
healthBarSize.x = ennemyHealth.health;
}
//damage target
if (Input.GetButtonDown("Fire1") && canAttack){
target.SendMessage("Damage",damage,SendMessageOptions.DontRequireReceiver);
}
}
function OnGUI (){
if (target != null && target.tag == "living"){
GUI.Box(Rect(10 , 20, healthBarSize.x, healthBarSize.y), "health");
}
}
also, if you thing there is a better way pleas let me know, thanks!
That's a really common topic (if some hypothetical person were $$anonymous$$ching an intro class to Unity, that's one of the things they'd cover.)
Search "Unity raycast from camera" and you'll get a pile of people using it in every way.
It's often used with the mouse, so you'd just fake up a mouse pos at Screen.width/2.
Or on a GUI, so you just use a fake (0.5,0.5) to always be center of the screen.
Your answer
Follow this Question
Related Questions
Enemy will only take (melee) damage when the distance is below 1 (ie. A zero with decimals after it) 2 Answers
Player Attack Script. I Need Help! 0 Answers
NullReferenceException: Object reference not set to an instance of an object Raycast...? 1 Answer
Animations Combo 0 Answers
Melee attacking multiple enemies 1 Answer