コード例 #1
0
 void Start()
 {
     sr = gameObject.GetComponent <SpriteRenderer>();
     invulnerabilityColor.a = 0.75f;
     particleManager        = FindObjectOfType <ParticleSystemsManager>();
     wiperManager           = FindObjectOfType <WiperManager>();
 }
コード例 #2
0
ファイル: GameManager.cs プロジェクト: jlelic/keep-it-alive
 void Start()
 {
     roadsManager = GetComponent <RoadsManager>();
     roadsManager.StartSpawning();
     wiperManager    = GetComponent <WiperManager>();
     tutorialManager = GetComponent <TutorialManager>();
     warningManager  = FindObjectOfType <WarningManager>();
     particleManager = FindObjectOfType <ParticleSystemsManager>();
 }
コード例 #3
0
    //TODO: DO THE TWIST!!! FLIP A READ AND WRITE BUFFER
    void Start()
    {
        //Application.targetFrameRate = 60;
        ParticleSystemsManager.inst = this;
        particleSystemProperties.AddRange(this.gameObject.GetComponents <PartSysProp>());


        int sqrtCount = (int)Mathf.Sqrt(maxParticleCount);

        DataBuffer[READ]  = new ComputeBuffer(maxParticleCount, ParticleData.stride, ComputeBufferType.Default);
        DataBuffer[WRITE] = new ComputeBuffer(maxParticleCount, ParticleData.stride, ComputeBufferType.Default);

        ArgBufferTrue      = new ComputeBuffer(4, sizeof(uint), ComputeBufferType.DrawIndirect);
        AppendRenderBuffer = new ComputeBuffer(maxParticleCount, ParticleData.stride, ComputeBufferType.Append);



        ParticlePropertyBuffer = new ComputeBuffer(maxParticleTypeCount, PartSysPropComputeModel.stride, ComputeBufferType.Default);
        PartSysPropComputeModel[] propList = new PartSysPropComputeModel[maxParticleTypeCount];
        for (int j = 0; j < particleSystemProperties.Count; j++)
        {
            propList[j] = particleSystemProperties[j].toCompute;
        }
        ParticlePropertyBuffer.SetData(propList);



        ParticleData[] pdatas = new ParticleData[maxParticleCount];

        int IDitterator = 0;

        for (int i = 0; i < maxParticleCount; i++)
        {
            pdatas[i].typeIDnum = -1;
        }

        DataBuffer[READ].SetData(pdatas);
        DataBuffer[WRITE].SetData(pdatas);


        cShade.SetBuffer(cShade.FindKernel("CSAddNewParticles"), "RaddPartData", DataBuffer[READ]);
        cShade.SetBuffer(cShade.FindKernel("CSAddNewParticles"), "WaddPartData", DataBuffer[WRITE]);
        cShade.SetBuffer(cShade.FindKernel("CSAddNewParticles"), "RaddPartSysProperties", ParticlePropertyBuffer);
        cShade.SetInt("totalMaxParticles", maxParticleCount);

        cShade.SetInt("typeIDtoAdd", 1);
        cShade.Dispatch(cShade.FindKernel("CSAddNewParticles"), 10000, 1, 1);
        Swap(DataBuffer);
        cShade.SetBuffer(cShade.FindKernel("CSAddNewParticles"), "RaddPartData", DataBuffer[READ]);
        cShade.SetBuffer(cShade.FindKernel("CSAddNewParticles"), "WaddPartData", DataBuffer[WRITE]);

        cShade.SetInt("typeIDtoAdd", 0);
        cShade.Dispatch(cShade.FindKernel("CSAddNewParticles"), 4096, 1, 1);
        Swap(DataBuffer);
    }
コード例 #4
0
    // Update is called once per frame
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Alpha1))         // Slow PowerUp  Type: 1
        {
            if (isPowerUpActive == false && GamePlayManager.slowPowerUps > 0)
            {
                GetComponent <MeshRenderer>().material = slowPower;
                GamePlayManager.speed = 0;
                powerUpType           = 1;
                isPowerUpActive       = true;
                buffTimer             = 2f;
                GamePlayManager.slowPowerUps--;
                GamePlayManager.points += 50;

                ParticleSystemsManager.UpdateDraft();
            }
        }
        else if (Input.GetKeyDown(KeyCode.Alpha2))   // Break PowerUp  Type: 2
        {
            if (isPowerUpActive == false && GamePlayManager.breakPowerUps > 0)
            {
                GetComponent <MeshRenderer>().material = breakPower;
                GamePlayManager.speed        = GamePlayManager.speed * 2;
                powerUpType                  = 2;
                isPowerUpActive              = true;
                buffTimer                    = 2f;
                GamePlayManager.isInvincible = true;
                GamePlayManager.breakPowerUps--;
                GamePlayManager.points += 50;

                ChangeDraftColor(breakPower.color);
                ParticleSystemsManager.UpdateDraft();
            }
        }
        else if (Input.GetKeyDown(KeyCode.Alpha3))   // Attract PowerUp  Type: 3
        {
            if (isPowerUpActive == false && GamePlayManager.attractPowerUps > 0)
            {
                GetComponent <MeshRenderer>().material = attractPower;
                powerUpType     = 3;
                isPowerUpActive = true;
                buffTimer       = 2f;
                GamePlayManager.isAttractive = true;
                GamePlayManager.attractPowerUps--;
                GamePlayManager.points += 50;

                ChangeDraftColor(attractPower.color);
            }
        }

        if (isPowerUpActive == true)
        {
            if (buffTimer > 0)
            {
                buffTimer -= Time.deltaTime;
            }
            else
            {
                switch (powerUpType)
                {
                case 1:
                    GetComponent <MeshRenderer>().material = playerColor;
                    GamePlayManager.speed = GamePlayManager.baseSpeed;
                    break;

                case 2:
                    GetComponent <MeshRenderer>().material = playerColor;
                    GamePlayManager.speed        = GamePlayManager.baseSpeed;
                    GamePlayManager.isInvincible = false;
                    break;

                case 3:
                    GetComponent <MeshRenderer>().material = playerColor;
                    GamePlayManager.isAttractive           = false;
                    break;
                }

                ParticleSystem ps   = ParticleSystemsManager.particleSystems[0].GetComponent <ParticleSystem>();
                var            main = ps.main;
                main.startColor = playerColor.color;
                ParticleSystemsManager.UpdateDraft();

                powerUpType     = 0;
                isPowerUpActive = false;
            }
        }
    }