- Home /
colider issues
hi guys im so confused when ever i attach a rigid body and / or a colider for my bullet for some stupid reason my bullet becomes my targets magicly. it doesnt do it when there is no collider so why/????? heres my code
using System.Collections; using System.Collections.Generic; using UnityEngine;
public class ArrayTrack : MonoBehaviour { public int i = 0;
public Transform target;
public Transform Placeholderforaimer;
// public Transform Newtarget; public float degreesPerSecond; public Transform []Targets; public float DelayTimer; public Transform BulletShell; public Transform[] ClipSize; // public float BulletSpeed;
public float speed;
// Use this for initialization
void Start () {
Targets = new Transform[20];
target = Placeholderforaimer;
// transform.LookAt(target);
DelayTimer = 0.0f;
ClipSize = new Transform[1];
ClipSize[0] = BulletShell;
speed = 5.0f;
}
// Update is called once per frame
void Update () {
RaycastHit hit;
Ray Bullet = new Ray(transform.position, transform.forward);
Debug.DrawRay(Bullet.origin, Bullet.direction * 8, Color.yellow);
if(Physics.Raycast(Bullet, out hit, 100))
{
if (hit.collider.tag != "Player1") {
// DelayTimer = DelayTimer - 0.1f;
if (DelayTimer == 0) {
ClipSize[0] = Instantiate(ClipSize[0]);
DelayTimer = 5.0f;
}
float step = speed * Time.deltaTime;
ClipSize[0].transform.position = Vector3.MoveTowards(ClipSize[0].transform.position, target.position, step);
}
}
Vector3 dirFromMeToTarget = target.position - transform.position;
dirFromMeToTarget.y = 0.0f;
Quaternion lookRotation = Quaternion.LookRotation(dirFromMeToTarget);
transform.rotation = Quaternion.Lerp(transform.rotation, lookRotation, Time.deltaTime * (degreesPerSecond / 360.0f));
// transform.LookAt(target);
}
void OnTriggerEnter(Collider other)
{
if(target.transform.name == Placeholderforaimer.transform.name) {
if (i < 20) {
Targets[i] = other.transform;
target = Targets[i].transform;
i = i + 1;
}
}
}
void OnTriggerExit(Collider other)
{
if (other.transform.name == target.transform.name) {
for (int i = 0; i < Targets.Length; i++) {
if (Targets[i] != null)
if (Targets[i].transform.name == target.transform.name) {
target = Placeholderforaimer;
Targets[i] = null;
}
}
}
}
}
Your answer
Follow this Question
Related Questions
Player color change on collision -1 Answers
Problem with collisions of my grab object 1 Answer
Box Colider not working properly 1 Answer
Swinging a bat to hit a falling ball 0 Answers
Composite Colider 2d - wrong colider line on angels 0 Answers