public void SetCPULevel(CPUCapabilityManager.SYSTEM_LEVEL sysLevel)
    {
        if (sysLevel == CPUCapabilityManager.SYSTEM_LEVEL.HIGH)
        {
            NumDynamicObjects = PotentiallyDynamicObjects.Length;
        }
        else if (sysLevel == CPUCapabilityManager.SYSTEM_LEVEL.MEDIUM)
        {
            NumDynamicObjects = PotentiallyDynamicObjects.Length / 2;
        }
        else if (sysLevel == CPUCapabilityManager.SYSTEM_LEVEL.LOW)
        {
            NumDynamicObjects = PotentiallyDynamicObjects.Length / 3;
        }
        else if (sysLevel == CPUCapabilityManager.SYSTEM_LEVEL.OFF)
        {
            NumDynamicObjects = 0;
        }

        Debug.Log("(Obj:" + gameObject.name + ") System capability set to: " + CPUCapabilityManager.Instance.CPUCapabilityLevel + ", so setting number of dynamic objects to: " + NumDynamicObjects);

        for (int i = 0; i < NumDynamicObjects; i++)
        {
            Rigidbody objRigidBody = PotentiallyDynamicObjects[i].AddComponent <Rigidbody>();
            objRigidBody.useGravity = true;
            objRigidBody.mass       = 10;
            PotentiallyDynamicObjects[i].AddComponent <SphereMovement>();
        }
    }
 public void SwitchSetting()
 {
     CurrentLevel = GetNextCPUSetting();
     CPUCapabilityManager.Instance.CPUCapabilityLevel = CurrentLevel;
     SceneManager.LoadScene("CPU_Capability_Demo");
     UIController.Instance.RefreshText();
 }
 void Start()
 {
     // First run - query hardware and choose system level based on CPUCapabilityManager thresholds
     CurrentLevel = CPUCapabilityManager.Instance.CPUCapabilityLevel;
     SceneManager.LoadScene("CPU_Capability_Demo");
     UIController.Instance.RefreshText();
 }
 public void SetCPULevel(CPUCapabilityManager.SYSTEM_LEVEL sysLevel)
 {
     if (sysLevel == CPUCapabilityManager.SYSTEM_LEVEL.HIGH)
     {
         for (int i = 0; i < ParticleSystems.Length; i++)
         {
             var particleSysMain      = ParticleSystems[i].main;
             var particleSysCollision = ParticleSystems[i].collision;
             var particleSysEmission  = ParticleSystems[i].emission;
             particleSysEmission.rateOverTime = 400.0f;
             particleSysMain.maxParticles     = 20000;
             particleSysCollision.enabled     = true;
             particleSysCollision.type        = ParticleSystemCollisionType.World;
         }
     }
     else if (sysLevel == CPUCapabilityManager.SYSTEM_LEVEL.MEDIUM)
     {
         for (int i = 0; i < ParticleSystems.Length; i++)
         {
             var particleSysMain      = ParticleSystems[i].main;
             var particleSysCollision = ParticleSystems[i].collision;
             var particleSysEmission  = ParticleSystems[i].emission;
             particleSysEmission.rateOverTime = 300.0f;
             particleSysMain.maxParticles     = 10000;
             particleSysCollision.enabled     = true;
             particleSysCollision.type        = ParticleSystemCollisionType.World;
         }
     }
     else if (sysLevel == CPUCapabilityManager.SYSTEM_LEVEL.LOW)
     {
         for (int i = 0; i < ParticleSystems.Length; i++)
         {
             var particleSysMain      = ParticleSystems[i].main;
             var particleSysCollision = ParticleSystems[i].collision;
             var particleSysEmission  = ParticleSystems[i].emission;
             particleSysEmission.rateOverTime = 200.0f;
             particleSysMain.maxParticles     = 5000;
             particleSysCollision.enabled     = true;
             particleSysCollision.type        = ParticleSystemCollisionType.Planes;
             for (int j = 0; j < CollisionPlanes.Length; j++)
             {
                 particleSysCollision.SetPlane(j, CollisionPlanes[j]);
             }
         }
     }
     else if (sysLevel == CPUCapabilityManager.SYSTEM_LEVEL.OFF)
     {
         for (int i = 0; i < ParticleSystems.Length; i++)
         {
             var particleSysMain      = ParticleSystems[i].main;
             var particleSysCollision = ParticleSystems[i].collision;
             var particleSysEmission  = ParticleSystems[i].emission;
             particleSysEmission.rateOverTime = 100.0f;
             particleSysMain.maxParticles     = 3000;
             particleSysCollision.enabled     = false;
         }
     }
 }
예제 #5
0
 public void SetCPULevel(CPUCapabilityManager.SYSTEM_LEVEL sysLevel)
 {
     if (sysLevel == CPUCapabilityManager.SYSTEM_LEVEL.HIGH)
     {
         DynamicGI.updateThreshold = 0;
         DynamicGI.synchronousMode = true;
     }
     else if (sysLevel == CPUCapabilityManager.SYSTEM_LEVEL.MEDIUM)
     {
         DynamicGI.updateThreshold = 15;
     }
     else if (sysLevel == CPUCapabilityManager.SYSTEM_LEVEL.LOW)
     {
         DynamicGI.updateThreshold = 35;
     }
     else if (sysLevel == CPUCapabilityManager.SYSTEM_LEVEL.OFF)
     {
         DynamicGI.updateThreshold = 45;
     }
 }
예제 #6
0
    public void SetCPULevel(CPUCapabilityManager.SYSTEM_LEVEL sysLevel)
    {
        // Only use if CPU deemed medium or high capability
        if (sysLevel == CPUCapabilityManager.SYSTEM_LEVEL.HIGH ||
            sysLevel == CPUCapabilityManager.SYSTEM_LEVEL.MEDIUM)
        {
            IsCPUCapable = true;

            // add rigidbodies to all little cubes
            for (int i = 0; i < PotentiallyDetachableCubes.Length; i++)
            {
                Rigidbody CurrRigidbody = PotentiallyDetachableCubes[i].AddComponent <Rigidbody>();
                CurrRigidbody.isKinematic = true;
                CurrRigidbody.useGravity  = false;
                ObjRigidbodies.Add(CurrRigidbody);
            }
            Debug.Log("(ExplosionController) System capability set to: " + CPUCapabilityManager.Instance.CPUCapabilityLevel + ", so object (" + gameObject.name + ") is destructible");
        }
        else
        {
            Debug.Log("(ExplosionController) System capability set to: " + CPUCapabilityManager.Instance.CPUCapabilityLevel + ", so object (" + gameObject.name + ") not destructible");
        }
    }
 public CPUCapabilityManager.SYSTEM_LEVEL GetNextCPUSetting()
 {
     CPUCapabilityManager.SYSTEM_LEVEL nextLevel = (CPUCapabilityManager.SYSTEM_LEVEL)(((((int)CurrentLevel) + 1)) % ((int)CPUCapabilityManager.SYSTEM_LEVEL.NUM_SYSTEMS));
     return(nextLevel);
 }