public override void _Ready()
        {
            var size           = GetViewportRect().Size;
            var particleSystem = new SimpleParticleSystem()
            {
                ParticleCreationFunction = () =>
                {
                    SimpleParticle particle = null;

                    if (MathUtils.RandRangef(0, 1) >= 0.5)
                    {
                        particle = new ERoundParticle();
                    }
                    else
                    {
                        particle = new ESquareParticle();
                    }

                    particle.Lifespan = 2;
                    return(particle);
                },
                Position = new Vector2(size.x / 2, size.y / 2)
            };

            AddChild(particleSystem);
        }
        protected void OnAnimalPlayLevelUpEffect(Message msg)
        {
            var _msg = msg as MessageInt;

            if (_msg.val != entityID)
            {
                return;
            }

            var cellAnimalUp = Config.animalupConfig.getInstace().getCell(this.animalID);
            var pool         = PoolManager.GetInstance().GetGameObjectPool(cellAnimalUp.levelupeffect);
            var effGo        = pool.New();

            effGo.transform.position   = Vector3.zero;
            effGo.transform.localScale = Vector3.one;
            effGo.transform.SetParent(this.cacheTrans, false);
            if (sp != null)
            {
                sp.UnInit();
            }
            else
            {
                sp = new SimpleParticle();
            }
            sp.Init(effGo);
            sp.Play();
            effGo.transform.parent = null;
            pool.Delete(effGo);
        }
        private static void PlayerSimpleParticle(Transform effectNode)
        {
            if (effectNode != null)
            {
                Transform trans = effectNode.Find("Fx_BuildUp");
                if (trans == null)
                {
                    trans = ResourceManager.GetInstance().LoadGameObject(Config.globalConfig.getInstace().BuildUpEffect2).transform;
                    trans.SetParent(effectNode, false);
                }
                SimpleParticle sp = null;
                if (sp != null)
                {
                    sp.UnInit();
                }
                else
                {
                    sp = new SimpleParticle();
                }
                sp.Init(trans.gameObject);
                sp.Play();
            }

            //
            //var cellAnimalUp = Config.animalupConfig.getInstace().getCell(this.animalID);

            //effGo.transform.position = Vector3.zero;
            //effGo.transform.localScale = Vector3.one;
            //effGo.transform.SetParent(this.cacheTrans, false);
        }
Example #4
0
    public SimpleParticle[] GenerateParticles(int numParticles)
    {
        SimpleParticle[] particles = new SimpleParticle[numParticles];
        for (int i = 0; i < numParticles; i++)
        {
            particles[i] = GenerateParticle();
        }

        return(particles);
    }
Example #5
0
 private void OnCollisionEnter(Collision collision)
 {
     if (collision.collider.CompareTag("Car"))
     {
         if (isCollision)
         {
             var sp = new SimpleParticle();
             sp.Init(transform.parent.Find("Effect/ColliderEffect").gameObject);
             sp.Play();
             MessageManager.GetInstance().Send((int)GameMessageDefine.CrossRoadGameFailure);
         }
     }
 }
Example #6
0
    // Use this for initialization
    protected virtual void Start()
    {
        var pList = new List <SimpleParticle>();

        for (var i = 0; i < instanceCount; i++)
        {
            var pos    = new Vector3(Random.Range(-areaScale.x / 2f, areaScale.x / 2f), Random.Range(-areaScale.y / 2f, areaScale.y / 2f), Random.Range(-areaScale.z / 2f, areaScale.z / 2f));
            var angles = new Vector3(Random.Range(0, 360), Random.Range(0, 360), Random.Range(0, 360));
            var s      = Random.Range(0.1f, 0.5f);
            var scale  = new Vector3(s, s, s);
            var color  = Random.ColorHSV();
            var p      = new SimpleParticle(pos, angles, scale, color);
            pList.Add(p);
        }
        Init(pList, "_TestBuffer", "_TestBuffer");
    }
Example #7
0
        /// <summary>
        /// 查找售票口的下标
        /// </summary>
        protected void FindEntryUISceneNode()
        {
            if (GlobalDataManager.GetInstance().zooGameSceneData.entryGateSenceData.entryGatesVector.Count < 1)
            {
                var sortGateIDs = GlobalDataManager.GetInstance().logicTableEntryGate.GetSortGateIDs(sceneID);
                for (int i = 0; i < sortGateIDs.Count; i++)
                {
                    var     cell = Config.ticketConfig.getInstace().getCell(sortGateIDs[i]);
                    Vector3 vector = GameObject.Find(cell.gameobjectpath).transform.position;
                    GlobalDataManager.GetInstance().zooGameSceneData.entryGateSenceData.entryGatesVector.Add(vector);
                    var simpleParticle = new SimpleParticle();
                    GlobalDataManager.GetInstance().zooGameSceneData.entryGateSenceData.entryCoinSpList.Add(simpleParticle);
                    string path = cell.prohibitroute;

                    Transform transform = GameObject.Find(path).transform;
                    GlobalDataManager.GetInstance().zooGameSceneData.entryGateSenceData.EntrySubscriptGB.Add(transform);
                }
            }
            //if (GlobalDataManager.GetInstance().zooGameSceneData.entryGateSenceData.entryGatesVector.Count < 1)
            //{
            //    ////循环查找所有的出口坐标  放在entryGatesVector
            //    for (int i = 0; i < Config.ticketConfig.getInstace().AllData.Count; i++)
            //    {
            //        var cell = Config.ticketConfig.getInstace().getCell(i);
            //        if (cell.scene == sceneID)
            //        {
            //            Vector3 vector = GameObject.Find(cell.gameobjectpath).transform.position;
            //            GlobalDataManager.GetInstance().zooGameSceneData.entryGateSenceData.entryGatesVector.Add(vector);
            //            var simpleParticle = new SimpleParticle();
            //            GlobalDataManager.GetInstance().zooGameSceneData.entryGateSenceData.entryCoinSpList.Add(simpleParticle);
            //            //LogWarp.LogErrorFormat("测试:AAAAAAAAAAAA   {0}     {1}", i, Config.ticketConfig.getInstace().AllData.Count);

            //            string path = Config.ticketConfig.getInstace().getCell(i).prohibitroute;

            //            Transform transform = GameObject.Find(path).transform;

            //            GlobalDataManager.GetInstance().zooGameSceneData.entryGateSenceData.EntrySubscriptGB.Add(transform);
            //        }

            //    }
            //}
        }
    // Returns the index the particle was inserted into
    private int AddSimpleParticle(SimpleParticle simpleParticle, int i = 0)
    {
        while (inUse[i])
        {
            i++;
        }

        position[i]      = simpleParticle.position;
        priorPosition[i] = simpleParticle.position - (simpleParticle.velocity * Time.fixedDeltaTime);
        force[i]         = new Vector3(UnityEngine.Random.Range(xRangeForce.x, xRangeForce.y), UnityEngine.Random.Range(yRangeForce.x, yRangeForce.y), UnityEngine.Random.Range(zRangeForce.x, zRangeForce.y));
        timeToLive[i]    = simpleParticle.timeToLive;
        inUse[i]         = true;
        indices.Add(i);

        if (!indicesModified)
        {
            indicesModified = true;
        }

        return(i);
    }
        /// <summary>
        /// 动物栏飘钱特效
        /// </summary>
        protected void PlayLittleZooSimpleParticle()
        {
#if NO_EFFECT
            return;
#endif
            var entity = (this.fsmCtr as FSMMachineVisitor).ownerEntity;

            var littleZooBuildinPos = LittleZooBuildinPosManager.GetInstance().GetLittleZooBuildinPos(entity.stayBuildingID);
            Dictionary <int, SimpleParticle> sps = null;
            var  visitSeatSpDict = GlobalDataManager.GetInstance().zooGameSceneData.visitSeatSpDict;
            bool retCode         = visitSeatSpDict.TryGetValue(entity.stayBuildingID, out sps);
            if (!retCode)
            {
                sps = new Dictionary <int, SimpleParticle>();
                visitSeatSpDict.Add(entity.stayBuildingID, sps);
            }

            SimpleParticle sp = null;
            retCode = sps.TryGetValue(entity.indexInVisitQueue, out sp);
            if (!retCode)
            {
                sp = new SimpleParticle();
                sps.Add(entity.indexInVisitQueue, sp);
            }

            if (!sp.isInit)
            {
                Vector3 visitPos = littleZooBuildinPos.visitPosList[entity.indexInVisitQueue];
                visitPos.y = Config.globalConfig.getInstace().LittleZooCoinEffectOffsetY;
                //GameObject effectGo = ResourceManager.GetInstance().LoadGameObject(Config.globalConfig.getInstace().CoinEffectRes);
                var        sceneCell = Config.sceneConfig.getInstace().getCell(playerData.playerZoo.currSceneID);
                var        moneyCell = Config.moneyConfig.getInstace().getCell(sceneCell.moneyid);
                GameObject effectGo  = ResourceManager.GetInstance().LoadGameObject(moneyCell.moneyeffect);
                effectGo.transform.position = visitPos;
                sp.Init(effectGo);
            }
            sp.Play();
        }
Example #10
0
        public void TestRenderParticles()
        {
            SimpleParticle[] particles = new SimpleParticle[] {
                new SimpleParticle(Vector3.Zero, Vector3.Zero),
                new SimpleParticle(Vector3.Zero, Vector3.Zero),
                new SimpleParticle(Vector3.Zero, Vector3.Zero),
                new SimpleParticle(Vector3.Zero, Vector3.Zero)
            };

            PrimitiveBatch <SimpleParticle> primitiveBatch;

            using (
                primitiveBatch = new PrimitiveBatch <SimpleParticle>(
                    this.mockedGraphicsDeviceService.GraphicsDevice,
                    this.vertexDeclaration, SimpleParticle.SizeInBytes
                    )
                ) {
                PointParticleRenderer <SimpleParticle> renderer = createRenderer();
                renderer.Render(
                    new ArraySegment <SimpleParticle>(particles, 1, 2), primitiveBatch
                    );
            }
        }
    public void TestRenderParticles() {
      SimpleParticle[] particles = new SimpleParticle[] {
        new SimpleParticle(Vector3.Zero, Vector3.Zero),
        new SimpleParticle(Vector3.Zero, Vector3.Zero),
        new SimpleParticle(Vector3.Zero, Vector3.Zero),
        new SimpleParticle(Vector3.Zero, Vector3.Zero)
      };

      PrimitiveBatch<SimpleParticle> primitiveBatch;
      using(
        primitiveBatch = new PrimitiveBatch<SimpleParticle>(
          this.mockedGraphicsDeviceService.GraphicsDevice,
          this.vertexDeclaration, SimpleParticle.SizeInBytes
        )
      ) {
        PointParticleRenderer<SimpleParticle> renderer = createRenderer();
        renderer.Render(
          new ArraySegment<SimpleParticle>(particles, 1, 2), primitiveBatch
        );
      }
    }