- Home /
Detect if GameObject is Touching an Imported Level
I have a bullet that gets shot out of a gun. When I previously used a raycast to instantiate a bullet hole on the wall, it worked perfectly. Now I have a raycast that stops at a wall which is an imported model. The problem is when I want to measure the distance from my bullet to the wall, it measures it from the bullet to the actual model itself. For example, if I were to shoot a bullet from 0, 0, 0 at a wall at 0, 0, 2 and the model's positions were 0, 0, 0, instead of measuring the distance from 0, 0, 0 to 0, 0, 2, it does it from 0, 0, 0 to 0, 0, 0. The reason I removed the previous raycast function was because I want to see the bullet go forward instead of instant collision. Here's some code from the bullet script:
transform.position += transform.forward * Time.deltaTime * bulletSpeed;
var hit : RaycastHit;
if(Physics.Raycast(transform.position, transform.forward, hit))
{
if(Vector3.Distance(transform.position, hit.transform.position) < 1 && hit.transform.tag == "LevelParts")
{
Instantiate(decalHitWall, hit.point + (hit.normal * floatInFrontOfWall), Quaternion.LookRotation(hit.normal));
}
if(Vector3.Distance(transform.position, hit.transform.position) < 1 && hit.transform.tag == "EnemyBodyPart")
{
if (hit.transform.GetComponent(EnemyBodyPartScript).enemyBody.GetComponent(EnemyBodyScript).enemyHealth > damage * hit.transform.GetComponent(EnemyBodyPartScript).damageMultiplier)
hit.transform.GetComponent(EnemyBodyPartScript).enemyBody.GetComponent(EnemyBodyScript).enemyHealth -= damage * hit.transform.GetComponent(EnemyBodyPartScript).damageMultiplier;
else
{
hit.transform.GetComponent(EnemyBodyPartScript).enemyBody.GetComponent(EnemyBodyScript).enemyHealth -= damage * hit.transform.GetComponent(EnemyBodyPartScript).damageMultiplier;
hit.transform.GetComponent(EnemyBodyPartScript).addForceVector = transform.forward * bulletForce * Time.deltaTime;
}
Destroy(gameObject);
}
}
Try this from your Raycast and use the info ins$$anonymous$$d of the transform of the wall.
Your answer
Follow this Question
Related Questions
Hit enemy life with raycast 1 Answer
Raycast not stopping at a wall? 1 Answer
Raycasr in my fps? 1 Answer
The name `target' does not exist in the current context 1 Answer
Enemy to move out of way of player 1 Answer