Question by
Wesley21spelde · May 29, 2016 at 09:43 PM ·
booleantargetrangeclosest
canseetarget how to?
Hey guys how can i get the canseetarget to work with the beaming range and also that it wil pick the closest Enemy in range? the apply damage is also not working . does someone know how this is done?
using UnityEngine; using System.Collections;
public class PlasmaBeamWeaponRight : MonoBehaviour{
public GameObject plasmaBeam;
public float spawnTime = 5f;
//
public Transform target;
private bool CanSeeTarget;
public float BeamingRange = 500f;
//
private LineRenderer lineRenderer;
private float counter;
private float dist;
//
public Transform origin;
//
public float linrDrawSpeed = 6f;
public float damage = 100.0f;
RaycastHit hit;
// Use this for initialization
void Start()
{
}
// Update is called once per frame
void OnCollisionEnter(Collision col)
{
col.gameObject.BroadcastMessage("ApplyDamage", damage = 100.0f);
}
void LateUpdate()
{
target = GameObject.FindWithTag("Enemy").transform;
origin = GameObject.FindWithTag("originR").transform;
if (target != null)
//
lineRenderer = GetComponent<LineRenderer>();
lineRenderer.SetPosition(0, origin.position);
lineRenderer.SetWidth(.45f, 0.2f);
dist = Vector3.Distance(origin.position, target.position);
if (counter < dist)
{
counter += .1f / linrDrawSpeed;
float x = Mathf.Lerp(0, dist, counter);
dist = Vector3.Distance(origin.position, target.position);
lineRenderer.SetPosition(0, origin.position);
Vector3 pointA = origin.position;
Vector3 pointB = target.position;
Vector3 pointAlongLine = x * Vector3.Normalize(pointB - pointA) + pointA;
lineRenderer.SetPosition(1, pointAlongLine);
Vector3 fwd = transform.TransformDirection(Vector3.forward);
if (Physics.Raycast(transform.position, fwd, 0))
hit.transform.SendMessage("ApplyDamage", damage, SendMessageOptions.DontRequireReceiver); //Call the method Apply Damage in the gameobject that is hit
}
}
}
Comment