Esempio n. 1
0
 private void Start()
 {
     _currentTerrainFeature        = GameObject.Find("Track").GetComponent <ITerrainFeature>();
     _wheelTransform               = GetComponentInChildren <MeshRenderer>().transform;
     _skidSound                    = GetComponent <AudioSource>();
     _trailParticleEffectBehaviour = trailParticleEffect.GetComponent <TrailParticleEffect>();
 }
Esempio n. 2
0
    private void SetTerrain(WheelHit hit)
    {
        ITerrainFeature terrainHit = hit.collider.GetComponent <ITerrainFeature>();

        if (!terrainHit.Equals(_currentTerrainFeature))
        {
            // Debug.Log("Terrain Feature: "+terrainHit.name);
            // Debug.Log("Previous Feature: "+_currentTerrainFeature.name);

            ParticleSystem newTrailParticleEffect = Instantiate(terrainHit.GetTrailParticleEffect(), trailParticleEffect.transform.parent, false);
            newTrailParticleEffect.transform.position = trailParticleEffect.transform.position;
            _trailParticleEffectBehaviour.ScheduleDestroy();
            trailParticleEffect           = newTrailParticleEffect;
            _trailParticleEffectBehaviour = trailParticleEffect.GetComponent <TrailParticleEffect>();

            _skidSound.Stop();
            _skidSound.clip = terrainHit.GetTrailAudioClip();

            TrailRenderer newTrail = Instantiate(trailEffect, trailEffect.transform.parent, false).GetComponent <TrailRenderer>();
            newTrail.material           = terrainHit.GetTrailMaterial();
            newTrail.transform.position = trailEffect.transform.position;
            trailEffect.autodestruct    = true;
            trailEffect.emitting        = false;
            trailEffect            = newTrail;
            _currentTerrainFeature = terrainHit;
        }
    }
Esempio n. 3
0
 /// <summary>
 /// Generate the voxels at the given chunk
 /// </summary>
 /// <param name="worldLocation"></param>
 /// <param name="feature"></param>
 /// <returns></returns>
 public override byte generateVoxelAt(Coordinate worldLocation, out ITerrainFeature feature, XZMapData xzData)
 {
     feature = null;
     if (worldLocation.y == xzData.surfaceHeight)
     {
         if (worldLocation.x + worldLocation.y % 12 == 0)
         {
             // make a new feature at the local chunk location
             feature = potentialFeatures[0].make(worldLocation - (Chunk.IDFromWorldLocation(worldLocation) * Chunk.Diameter));
         }
         return(TerrainBlock.Types.Grass.Id);
     }
     else if (worldLocation.y < xzData.surfaceHeight)
     {
         return(TerrainBlock.Types.Dirt.Id);
     }
     else
     {
         return(TerrainBlock.Types.Air.Id);
     }
 }
Esempio n. 4
0
 public bool Equals(ITerrainFeature other)
 {
     return(other.TerrainFeatureName == TerrainFeatureName);
 }