- Home /
How do i have AI objects have teams and attack when in range
I am making a rts game I have the money power and movement set up but now I need a way for the teams to be set up. It has to be a efficient way to detect without using colliders for range. Heres basicly what I need
I dont need you to set up the firing and stuff just need it to know that it is suppose to attack. C#
Answer by iamthecoolguy11 · Jul 19, 2014 at 02:34 AM
Ok i came up with this script it works with objects tagged as player.
public float team = 1;
public float radius = 0.1f;
private Team Bla;
// Use this for initialization
void Start ()
{
InvokeRepeating("SlowUpdate", 2, 2);
}
void SlowUpdate()
{
Collider[] hitColliders = Physics.OverlapSphere(transform.position, radius);
for(int i = 0; i < hitColliders.Length; i++)
{
if(hitColliders[i].gameObject.tag == "Player")
{
Bla = hitColliders[i].transform.GetComponent<Team>();
if(Bla.team != team)
{
renderer.material.color = new Color(1,4,1);
}
}
}
}
Answer by Reeceg · Jul 18, 2014 at 03:35 AM
I think you would do something like
var distanceTillShoot : float;
var LookAtTarget : Transform;
function Shoot(){
var distance = Vector3.Distance(LookAtTarget.transform.position, transform.position);
if (distance <= distanceTillShoot){
//your function
}
}
Answer by Kiwasi · Jul 18, 2014 at 02:50 AM
Multiple ways to do teams
Tags
Parenting
Custom variable in script
Triggers are probably still the best way to do detection. The other option is to manually check the distance against every enemy in the scene. Might be cheaper for a small number of enemies working in squared space. But I would be surprised.
i cant use tags so im trying to have a script that it looks at and sees what $$anonymous$$m it is on
So what's your problem? Add a component called Team, with a public variable called myTeam. Then check against this variable every time you want to check $$anonymous$$ms.
i think i figured it out. I have a script with a variable and when something comes in range it looks to see if it is on the same $$anonymous$$m.
Your answer
Follow this Question
Related Questions
Boids/Flocking Tutorial 0 Answers
how do i make teams for a rts game 1 Answer
Distribute terrain in zones 3 Answers
How to control order of executiing scripts? 1 Answer
RTS dynamic formation width and length 0 Answers