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*.colliderComponent;*
if (col.attachedRigidbody != null) { Vector3 vel = m_CollisionEvents*.velocity; _col.attachedRigidbody.AddForce(velforce, ForceMode.Impulse);_ }
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!
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.
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*.colliderComponent;*
if (other.GetComponent<Rigidbody> != null)*
{*
Vector3 vel = m_CollisionEvents*.velocity; _ other.GetComponent.AddForce(velforce, ForceMode.Impulse);_ * }*