- Home /
Setting a Target for projectile.
i am currently having the following problem:
when i set the target for my projectile and ray cast on a non viable target while the projectile is in mid air it produces an odd behavior of the projectile ping ponging between the invalid target and going forward in it's direction. i suspect the problem is related to the ray casting in the update function. but i don't know a better alternative. so if some one could kindly explain to a beginner what is exactly is the cause and how i can overcome it because i am facing similar problems across my game. aka spammed behavior. my goal is to create a delegate at the end that invokes the attacking and pass it to my gui system. thank you very much for your help. A)Tank Script
public GameObject projectile,barrelEnd;
public GameObject Target {
get {
return target;
}
set {
target = value;
if(value!=null&&value.
GetComponent<ObjectLogic>()
.myType!=UnitType.Player) {
StopCoroutine("AttackTarget");
StartCoroutine("AttackTarget");
}else {
target = null;
Debug.Log("Invalid");
}
}
}
private RaycastHit hit;
private GameObject target;
private void Start() {
target = null;
}
private void Update() {
Behaviour ();
}
public void Behaviour() {
if (Input.GetButtonDown ("Fire1")) {
RayCast();
}
}
public void RayCast() {
var ray = Camera.main.
ScreenPointToRay (Input.mousePosition);
if (Physics.Raycast (ray, out hit)) {
Target = hit.transform.gameObject;
}
}
If you have targets that are non-viable, you should consider them in the raycast result in line 45. Typically, you would check the hit.collider.tag value to see if the target was tagged. Then in the editor, you should tag anything that is a viable target as something useful like "$$anonymous$$issileTarget" and check that on line 46 above.
Your answer
Follow this Question
Related Questions
Multiple Cars not working 1 Answer
Distribute terrain in zones 3 Answers
A Proper Way To Pause A Game 9 Answers
Code for picking item up isn't working.,Why isn't my pick up item code working? 2 Answers
NavMeshAgent, goes to the wrong place 0 Answers