[NonSerialized] public int[] propertyColorId; // The property color id for each particles (pairing a particle's color to a manipulator // Copy this PlaygroundCache struct public PlaygroundCache Clone () { PlaygroundCache playgroundCache = new PlaygroundCache(); playgroundCache.size = this.size.Clone() as float[]; playgroundCache.life = this.life.Clone() as float[]; playgroundCache.birth = this.birth.Clone() as float[]; playgroundCache.birthDelay = this.birthDelay.Clone() as float[]; playgroundCache.death = this.death.Clone() as float[]; playgroundCache.emission = this.birth.Clone() as bool[]; playgroundCache.rebirth = this.rebirth.Clone() as bool[]; playgroundCache.lifetimeOffset = this.lifetimeOffset.Clone() as float[]; playgroundCache.velocity = this.velocity.Clone() as Vector3[]; playgroundCache.targetPosition = this.targetPosition.Clone() as Vector3[]; playgroundCache.previousTargetPosition = this.previousTargetPosition.Clone() as Vector3[]; playgroundCache.previousParticlePosition = this.previousParticlePosition.Clone() as Vector3[]; playgroundCache.scatterPosition = this.scatterPosition.Clone() as Vector3[]; playgroundCache.initialRotation = this.initialRotation.Clone() as float[]; playgroundCache.rotationSpeed = this.rotationSpeed.Clone() as float[]; playgroundCache.parent = this.parent.Clone() as Transform[]; playgroundCache.color = this.color.Clone() as Color32[]; playgroundCache.changedByProperty = this.changedByProperty.Clone() as bool[]; playgroundCache.changedByPropertyColor = this.changedByPropertyColor.Clone() as bool[]; playgroundCache.changedByPropertyColorLerp = this.changedByPropertyColorLerp.Clone() as bool[]; playgroundCache.changedByPropertyColorKeepAlpha = this.changedByPropertyColorKeepAlpha.Clone () as bool[]; playgroundCache.changedByPropertySize = this.changedByPropertySize.Clone() as bool[]; playgroundCache.changedByPropertyTarget = this.changedByPropertyTarget.Clone() as bool[]; playgroundCache.changedByPropertyDeath = this.changedByPropertyDeath.Clone() as bool[]; playgroundCache.propertyTarget = this.propertyTarget.Clone() as int[]; playgroundCache.propertyId = this.propertyId.Clone() as int[]; playgroundCache.propertyColorId = this.propertyColorId.Clone() as int[]; return playgroundCache; }
// Check all needed references void CheckReferences () { if (PlaygroundC.reference==null) PlaygroundC.reference = FindObjectOfType<PlaygroundC>(); if (PlaygroundC.reference==null) PlaygroundC.ResourceInstantiate("Playground Manager"); if (this.playgroundCache==null) this.playgroundCache = new PlaygroundCache(); if (this.particleCache==null) this.particleCache = new ParticleCache(); if (this.particleSystemGameObject==null) { this.particleSystemGameObject = gameObject; this.particleSystemTransform = transform; this.particleSystemRenderer = renderer; this.shurikenParticleSystem = particleSystemGameObject.GetComponent<ParticleSystem>(); } }