Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
  • Help Room /
avatar image
0
Question by SwiftKraft · Sep 23, 2020 at 11:11 PM · instantiateraycastmultiplayer

Raycast shooting impact effect position problem

I am working on a Multiplayer FPS, I followed Brackey's multiplayer tutorial (parts of it) and got stuck on the impact effect.

For some reason, the impact particle prefab is only instantiating at the center, not the impact point.

Here's my code:

(Attached to Player Prefab)

PlayerShooting.cs

 using System.Collections; 
 using System.Collections.Generic; 
 using UnityEngine; 
 using UnityEngine.Networking; 
 
 public class PlayerShooting : NetworkBehaviour
 {
     public PlayerWeapons weapon; //Stores values of the weapon
     public PlayerAnimationNetwork playerAnimationNetwork; //Animation Network, MuzzleFlash effect
     public WeaponGFX wpgfx; //Another Script
 
     [SerializeField]
     private LayerMask mask;
 
     [SerializeField]
     private Camera cam; //player's camera
     private bool Delay; //shooting delay
 
     public int animShoot; //used to control PlayerAnimationNetwork
 
     void Start()
     {
         if (cam == null)
         {
             Debug.LogError("No Camera Reference");
             this.enabled = false;
         }
     }
 
     void Update()
     {
         if (Input.GetButtonDown("Fire1") && Delay == false)
         {
             Shoot();
         }
     }
     //Console command stuff, executes the particles and impacts on other clients
     [Command]
     void CmdOnShoot()
     {
         RpcDoMuzzleFlash();
     }
 
     [Command]
     void CmdOnHit(Vector3 _pos)
     {
         RpcDoImpact(_pos);
     }
 
     //Console executes these commands to tell the clients what to play and what to instantiate
     [ClientRpc]
     void RpcDoMuzzleFlash()
     {
         playerAnimationNetwork.ps.Play();
         playerAnimationNetwork.sound.Play();
     }
 
     [ClientRpc]
     void RpcDoImpact(Vector3 _pos)
     {
         GameObject _hitEffect = Instantiate(wpgfx.hitEffectPrefab, _pos, Quaternion.identity);
         Destroy(_hitEffect, 0.5f);
     }
 
     //LocalPlayer Stuff
     [Client]
     void Shoot()
     {
         if (!isLocalPlayer)
         {
             return;
         }
         else
         {
             RaycastHit _hit;
             if (Physics.Raycast(cam.transform.position, cam.transform.forward, out _hit, weapon.range, mask))
             {
                 // We hit sth
             }
 
             CmdOnShoot();
             CmdOnHit(_hit.point);
 
             Delay = true;
             animShoot = 1;
 
             Invoke("falseDelay", 0.12f);
         }
     }
 
     void falseDelay()
     {
         Delay = false;
 
         animShoot = 0;
     }
 }



Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

1 Reply

· Add your reply
  • Sort: 
avatar image
0
Best Answer

Answer by streeetwalker · Sep 24, 2020 at 10:30 AM

HI SwiftKraft, You seem to have a problem with this bit of code:

              RaycastHit _hit;
              if (Physics.Raycast(cam.transform.position, cam.transform.forward, out _hit, weapon.range, mask))
              {
                  // We hit sth
              }
  
              CmdOnShoot();
              CmdOnHit(_hit.point)


Your Raycast result has no bearing on your call to the function that will ultimately instantiate your impact effect. Chances are you are not getting any hits, and if you don't you are passing (0,0,0) as the hit point - hence the position of the impact effect is at the center of the world.

Perhaps you made a mistake following the tutorial. I haven't looked at the tutorial, but my guess is those last two lines of code need to be in the body of the if physics.Raycast block, not after it.

Comment
Add comment · Show 3 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image SwiftKraft · Sep 24, 2020 at 05:35 PM 0
Share

I tried it but it didn't instantiate anything. even if I am literally shooting the ground

avatar image streeetwalker SwiftKraft · Sep 24, 2020 at 09:58 PM 0
Share

Yes, that means your raycast is not working the way you think it should. There could be a number of reasons why, but it is impossible to tell without seeing the complete set up of the objects you are supposed to be hitting.

So now that the if statement is set up properly, you have further problems.

One thing I just spotted that looks suspicious is the mask variable - have you given your objects a layer, and is the mask set up to catch that? I don't see in your code where you are assigning a value to the mask. I would set it up as a public variable and chose the layers in the inspectors popup field.

Once you have that problem resolved, double check weapon.range.

avatar image SwiftKraft streeetwalker · Sep 29, 2020 at 06:54 PM 0
Share

Thanks a lot! I assigned the mask variable on the inspector, the hit effects started showing on the correct places!

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

367 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Raycast not drawing where i tell it 1 Answer

Instantiating object in the wrong place,Instantiate object at mouse point getting wrong coordinates 1 Answer

Issue with Raycast hit.distance Variables Reseting Itself 0 Answers

Bullets with raycast and physics 2 Answers

NetworkServer.Spawn spawns objects differently between clients 0 Answers


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges