• 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
1
Question by damouss · Apr 17, 2017 at 12:15 AM · errorrigidbodycomponentreference assembliesextension-methods

error CS1061: Are you missing an assembly reference?

Hello,

The Console is giving the error:

error CS1061: Type UnityEngine.Component' does not contain a definition for attachedRigidbody' and no extension method attachedRigidbody' of type UnityEngine.Component' could be found. Are you missing an assembly reference?

Here is the script:

 using System;
 using UnityEngine;
 
 namespace UnityStandardAssets.Effects
 {
     public class WaterHoseParticles : MonoBehaviour
     {
         public static float lastSoundTime;
         public float force = 1;
 
 
         private ParticleCollisionEvent[] m_CollisionEvents = new ParticleCollisionEvent[16];
         private ParticleSystem m_ParticleSystem;
 
 
         private void Start()
         {
             m_ParticleSystem = GetComponent<ParticleSystem>();
         }
 
 
         private void OnParticleCollision(GameObject other)
         {
             int safeLength = m_ParticleSystem.GetSafeCollisionEventSize();
 
             if (m_CollisionEvents.Length < safeLength)
             {
                 m_CollisionEvents = new ParticleCollisionEvent[safeLength];
             }
 
             int numCollisionEvents = m_ParticleSystem.GetCollisionEvents(other, m_CollisionEvents);
             int i = 0;
 
             while (i < numCollisionEvents)
             {
                 if (Time.time > lastSoundTime + 0.2f)
                 {
                     lastSoundTime = Time.time;
                 }
 
                 var col = m_CollisionEvents[i].colliderComponent;
 
                 if (col.attachedRigidbody != null)
                 {
                     Vector3 vel = m_CollisionEvents[i].velocity;
                     col.attachedRigidbody.AddForce(vel*force, ForceMode.Impulse);
                 }
 
                 other.BroadcastMessage("Extinguish", SendMessageOptions.DontRequireReceiver);
 
                 i++;
             }
         }
     }
 }
 

attachedRigidbody and attachedRigidbody.AddForce appear red in the script on Mono.

Any ideas how to fix it, maybe how I can provide the missing assembly reference?

Thanks!

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

3 Replies

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

Answer by Matthewj866 · Apr 17, 2017 at 01:24 AM

@damouss Hi there, and welcome to Unity Answers.

For clarification, attachedRigidBody lives on Collider and not GameObject: https://docs.unity3d.com/ScriptReference/Collider-attachedRigidbody.html

The issue here is that GameObject does not have any property called attachedRigidbody. In this instance, you're better off doing other.GetComponent<Rigidbody>() rather than trying to use Collider.attachedRigidBody as this will lead to longer code that (probably) does the exact same thing.

Whenever an error says X does not contain a definition for Y, this means that whatever X is, Y does not exist within it so it can never compile. This is just for future reference.

Hope this helps!

Comment
Add comment · Show 1 · 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 SandipSarna · Aug 08, 2017 at 06:39 PM 0
Share

Hi. Iam having same issue. What wrong am i doing?

here is the script:

 using System;
 using UnityEngine;
 
 namespace UnityStandardAssets.Effects
 {
     public class WaterHoseParticles : $$anonymous$$onoBehaviour
     {
         public static float lastSoundTime;
         public float force = 1;
 
 
         private ParticleCollisionEvent[] m_CollisionEvents = new ParticleCollisionEvent[16];
         private ParticleSystem m_ParticleSystem;
 
 
         private void Start()
         {
             m_ParticleSystem = GetComponent<ParticleSystem>();
         }
 
 
         private void OnParticleCollision(GameObject other)
         {
             int safeLength = m_ParticleSystem.GetSafeCollisionEventSize();
 
             if (m_CollisionEvents.Length < safeLength)
             {
                 m_CollisionEvents = new ParticleCollisionEvent[safeLength];
             }
 
             int numCollisionEvents = m_ParticleSystem.GetCollisionEvents(other, m_CollisionEvents);
             int i = 0;
 
             while (i < numCollisionEvents)
             {
                 if (Time.time > lastSoundTime + 0.2f)
                 {
                     lastSoundTime = Time.time;
                 }
 
                 var col = m_CollisionEvents[i].colliderComponent;
 
                 if (other.GetComponent<Rigidbody> != null)
                 {
                     Vector3 vel = m_CollisionEvents[i].velocity;
                     other.GetComponent<Rigidbody>.AddForce(vel*force, Force$$anonymous$$ode.Impulse);    
                 }
 
                 other.Broadcast$$anonymous$$essage("Extinguish", Send$$anonymous$$essageOptions.DontRequireReceiver);
 
                 i++;
             }
         }
     }
 }
 

avatar image
0

Answer by eipok · Oct 20, 2017 at 07:00 PM

Hi @Matthewj866 I still have that problem and that solution is not fixing it, it comes with following error:

'Assets/Standard Assets/ParticleSystems/Scripts/WaterHoseParticles.cs(43,15): error CS0019: Operator !=' cannot be applied to operands of type method group' and null''. And this other error; "Assets/Standard Assets/ParticleSystems/Scripts/WaterHoseParticles.cs(46,12): error CS0119: Expression denotes a method group', where a variable', value' or `type' was expected". code:

 using System;
 using UnityEngine;
 
 namespace UnityStandardAssets.Effects
 {
     public class WaterHoseParticles : MonoBehaviour
     {
         public static float lastSoundTime;
         public float force = 1;
 
 
         private ParticleCollisionEvent[] m_CollisionEvents = new ParticleCollisionEvent[16];
         private ParticleSystem m_ParticleSystem;
 
 
         private void Start()
         {
             m_ParticleSystem = GetComponent<ParticleSystem>();
         }
 
 
         private void OnParticleCollision(GameObject other)
         {
             int safeLength = m_ParticleSystem.GetSafeCollisionEventSize();
 
             if (m_CollisionEvents.Length < safeLength)
             {
                 m_CollisionEvents = new ParticleCollisionEvent[safeLength];
             }
 
             int numCollisionEvents = m_ParticleSystem.GetCollisionEvents(other, m_CollisionEvents);
             int i = 0;
 
             while (i < numCollisionEvents)
             {
                 if (Time.time > lastSoundTime + 0.2f)
                 {
                     lastSoundTime = Time.time;
                 }
 
                 var col = m_CollisionEvents[i].colliderComponent;
 
                 if (other.GetComponent<Rigidbody> != null)
                 {
                     Vector3 vel = m_CollisionEvents[i].velocity;
                     other.GetComponent<Rigidbody>.AddForce(vel*force, ForceMode.Impulse);    
                 }
 
                 other.BroadcastMessage("Extinguish", SendMessageOptions.DontRequireReceiver);
 
                 i++;
             }
         }
     }
 }
Comment
Add comment · Show 1 · 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 odival · Dec 01, 2017 at 05:05 PM 0
Share

Hey man, the problem is that you're using other.GetComponent and there's no such variable (other) in that script. Also you must use () after Rigidbody on lines 45-46. This should work:

 if (col.GetComponent<Rigidbody>() != null)
                 {
                     Vector3 vel = m_CollisionEvents[i].velocity;
                     col.GetComponent<Rigidbody>().AddForce(vel*force, Force$$anonymous$$ode.Impulse);
                 }
avatar image
1

Answer by Budgieboy · Jan 14, 2018 at 09:02 PM

 using System;
 using UnityEngine;
 using System.Collections;
 
 namespace UnityStandardAssets.Effects
 {
     public class WaterHoseParticles : MonoBehaviour
     {
         public static float lastSoundTime;
         public float force = 1;
         public Rigidbody attachedRigidbody;
 
         private ParticleCollisionEvent[] m_CollisionEvents = new ParticleCollisionEvent[16];
         private ParticleSystem m_ParticleSystem;
 
 
         private void Start()
         {
             m_ParticleSystem = GetComponent<ParticleSystem>();
         }
 
 
         private void OnParticleCollision(GameObject other)
         {
             int safeLength = m_ParticleSystem.GetSafeCollisionEventSize();
 
             if (m_CollisionEvents.Length < safeLength)
             {
                 m_CollisionEvents = new ParticleCollisionEvent[safeLength];
             }
 
             int numCollisionEvents = m_ParticleSystem.GetCollisionEvents(other, m_CollisionEvents);
             int i = 0;
 
             while (i < numCollisionEvents)
             {
                 if (Time.time > lastSoundTime + 0.2f)
                 {
                     lastSoundTime = Time.time;
                 }
 
                 var Collider = m_CollisionEvents[i].colliderComponent;
 
                 if (GetComponent<Collider>().attachedRigidbody != null)
                 {
                     Vector3 vel = m_CollisionEvents[i].velocity;
                     GetComponent<Collider>().attachedRigidbody.AddForce(vel*force, ForceMode.Impulse);
                 }
 
                 other.BroadcastMessage("Extinguish", SendMessageOptions.DontRequireReceiver);
 
                 i++;
             }
         }
     }
 }
 
Comment
Add comment · 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

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.

Welcome to Unity Answers

The best place to ask and answer questions about development with Unity.

To help users navigate the site we have posted a site navigation guide.

If you are a new user to Unity Answers, check out our FAQ for more information.

Make sure to check out our Knowledge Base for commonly asked Unity questions.

If you are a moderator, see our Moderator Guidelines page.

We are making improvements to UA, see the list of changes.



Follow this Question

Answers Answers and Comments

140 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

Related Questions

Error That Doesn't Affect My Game Is Spammed Every Frame. 1 Answer

error CS0103 rb doesn't exist in the current context, ligne 8 and 15 , can't fix it 1 Answer

Can't reference script of parent 2 Answers

Error CS1612 1 Answer

Can't re-parent GameObject with Text(script) component. 0 Answers

  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges