- 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