Beispiel #1
0
 public LevelData()
 {
     brushes          = new Brush[0];
     lights           = new UFLevelStructure.Light[0];
     ambSounds        = new AmbSound[0];
     events           = new UFLevelStructure.Event[0];
     spawnPoints      = new SpawnPoint[0];
     particleEmitters = new UFLevelStructure.ParticleEmitter[0];
     pushRegions      = new PushRegion[0];
     decals           = new Decal[0];
     climbingRegions  = new ClimbingRegion[0];
     boltEmitters     = new BoltEmitter[0];
     targets          = new UFTransform[0];
     entities         = new Entity[0];
     items            = new Item[0];
     clutter          = new Clutter[0];
     triggers         = new Trigger[0];
     movingGeometry   = new Brush[0];
     movingGroups     = new MovingGroup[0];
     geoRegions       = new GeoRegion[0];
 }
Beispiel #2
0
    public void Set(BoltEmitter emit)
    {
        LineRenderer lr = gameObject.AddComponent <LineRenderer>();

        this.initOn = emit.initOn;
        jitter      = emit.jitter;

        lr.positionCount = Mathf.Max(2, emit.nboSegments + 1);
        lr.startWidth    = emit.thickness;
        lr.endWidth      = emit.thickness;
        lr.startColor    = emit.color;
        lr.endColor      = emit.color;

        lr.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off;
        lr.receiveShadows    = false;
        lr.useWorldSpace     = false;
        lr.enabled           = false;

        targetID = emit.targetID;

        decay          = emit.decay;
        decayRandomize = emit.decayRandomize;
        delay          = emit.spawnDelay;
        delayRandomize = emit.spawnDelayRandomize;

        float maxDecay = decay + decayRandomize;
        float minDelay = delay - delayRandomize;
        int   maxBolts = 10;

        if (minDelay > 0f)
        {
            maxBolts = Mathf.Min(maxBolts, Mathf.CeilToInt(maxDecay / minDelay));
        }
        bolts = new Bolt[maxBolts];

        List <UnityEngine.Keyframe> boltShapeKeys = new List <UnityEngine.Keyframe>();

        if (emit.srcDirLock)
        {
            boltShapeKeys.Add(new UnityEngine.Keyframe(0f, 0f, 0f, 0f));
            boltShapeKeys.Add(new UnityEngine.Keyframe(.25f, emit.srcCtrlDist, 0f, 0f));
        }
        else
        {
            boltShapeKeys.Add(new UnityEngine.Keyframe(0f, 0f, 0f, 2f * emit.srcCtrlDist));
        }
        if (emit.trgDirLock)
        {
            boltShapeKeys.Add(new UnityEngine.Keyframe(.75f, emit.trgCtrlDist, 0f, 0f));
            boltShapeKeys.Add(new UnityEngine.Keyframe(0f, 0f, 0f, 0f));
        }
        else
        {
            boltShapeKeys.Add(new UnityEngine.Keyframe(0f, 0f, -2f * emit.trgCtrlDist, 0f));
        }

        boltShape = new AnimationCurve(boltShapeKeys.ToArray());

        lr.numCapVertices    = 3;
        lr.numCornerVertices = 1;
    }