Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 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
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
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
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);
                 }

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

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

Creating multiple text components on a canvas 1 Answer

Need Help! (How to make a game series by brackeys [video 2] ) 1 Answer

When i type code to move my person i get errors 1 Answer

Can't re-parent GameObject with Text(script) component. 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