У меня есть следующий # скрипт C для управления некоторой физикой системы частиц в Unity:Глобальных переменный не признается в цикле
//PS Variables
ParticleSystem myPS;
public List<ParticleCollisionEvent> collisisonEvents;
//Physics variables
public float effect;
// Use this for initialization
void Start() {
myPS = GetComponent<ParticleSystem>();
collisisonEvents = new List<ParticleCollisionEvent>();
}
void OnParticleCollision (GameObject other)
{
//Checking if the hit object is indeed the ball
bool isBall = other.tag.Equals("Player");
if (isBall)
{
Rigidbody2D hitObject = other.GetComponent<Rigidbody2D>();
//Getting the number of collisions that have occured this frame
int numOfCollisions = myPS.GetCollisionEvents(other, collisisonEvents);
Vector3 particleDirection = new Vector2(0,0);
//Iterating through all the events
for (int i = 0; i < numOfCollisions; i++)
{
//Calculating a resultant direction
particleDirection += collisionEvents[i].velocity;
}
//Applying the resultant force
hitObject.AddForce(particleDirection.normalized * effect * numOfCollisions);
}
}
Там, кажется, проблема с объемом collisionsEvents списка, хотя, как Я не могу использовать его в цикле for в совместной программе OnParticleCollision. Я продолжаю получать ошибку, что «collisionsEvents не существует в этом текущем контексте». Однако переменная myPS не имеет этой проблемы, и она была объявлена в том же месте, что и collisionsEvents.
Может ли кто-нибудь помочь мне здесь?
collisionEvents = collisisonEvents! – Gusman