Наследование: MonoBehaviour
Пример #1
0
 //4 is full, 150 is empty for fuel tank.
 void Start()
 {
     rTRef      = GetComponentInChildren <RotateTowards>();
     hudImages  = FindObjectsOfType <Image>();
     hudButtons = FindObjectsOfType <Button>();
     hudTexts   = FindObjectsOfType <Text>();
 }
Пример #2
0
 void Start()
 {
     sounds              = Camera.main.GetComponent <SoundManager> ();
     rotationAxis        = GetComponentInParent <RotateTowards>();
     rotationAxis.target = null;
     renderer            = GetComponent <Renderer>();
     renderer.enabled    = isEnabled;
 }
Пример #3
0
    // Use this for initialization
    new void Start()
    {
        base.Start();

        players[0] = GameObject.FindWithTag("Erl");
        players[1] = GameObject.FindWithTag("Isa");

        weaponJoint = GetComponentInChildren <RotateTowards>();
    }
Пример #4
0
    // Use this for initialization
    new void Start()
    {
        base.Start();

        target = GameObject.FindWithTag("Isa");

        weaponJoint = GetComponentInChildren <RotateTowards>();

        gravity      = -(2 * jumpHeight) / Mathf.Pow(timeToJumpApex, 2);
        jumpVelocity = Mathf.Abs(gravity) * timeToJumpApex;
    }
Пример #5
0
    void Awake()
    {
        //radius = Random.Range(30, 200);
        player           = GameObject.FindWithTag("Player");
        lighting         = transform.Find("Lighting").gameObject;
        lightSpotInverse = lighting.transform.Find("LightSpotInverse").GetComponent <Light>();

        // lightSpot = lighting.transform.Find("LightSpot").GetComponent<Light>();
        lightDirectional       = lighting.transform.Find("LightDirectional").GetComponent <Light>();
        lightDirectional.color = lightColor;
        lightSpotInverse.color = lightColor;

        lighting.GetComponent <FollowObject>().target          = player.transform;
        lightDirectional.GetComponent <RotateTowards>().target = transform.Find("Sphere").gameObject;
        lightSpotInverse.GetComponent <RotateTowards>().target = transform.Find("Sphere").gameObject;;

        RotateTowards rt = GetComponent <RotateTowards>();

        if (rt)
        {
            rt.target = player;
        }

        lightDirectional.transform.localPosition = new Vector3(0, 0, (-spotLightDistance / radius));

        Transform outerGas = transform.Find("OuterGas");

        if (outerGas)
        {
            outerGas.GetComponent <RotateTowards>().target = player;
        }

        isHostile = (canBeHostile && Random.value <= chanceToBeHostile);
        if (chanceToHaveDustRing > 0 && Random.value <= chanceToHaveDustRing)
        {
            hasDustRing       = true;
            hasRingMeteorites = (chanceToHaveRingMeteorites > 0 && Random.value <= chanceToHaveRingMeteorites);
        }

        if (hasDustRing)
        {
            transform.Find("Ring")?.gameObject.SetActive(true);
        }
        if (hasRingMeteorites)
        {
            transform.Find("Rocks")?.gameObject.SetActive(true);
        }
    }
Пример #6
0
 void Kill()
 {
     IsDying = true;
     Collider2D[] aColliders = GetComponentsInChildren<Collider2D>();
     for (int i = 0; i < aColliders.Length; ++i)
     {
         aColliders[i].enabled = false;
     }
     RotateTowards rotateTowards = GetComponent<RotateTowards>();
     if (rotateTowards) rotateTowards.UnlockDistanceToTarget();
     transform.localScale = new Vector3(transform.localScale.x, -transform.localScale.y, transform.localScale.z);
     transform.position = new Vector3(transform.position.x, transform.position.y, -1f);
     m_rigidBody2D.velocity = Vector2.zero;
     m_rigidBody2D.AddForce(transform.up, ForceMode2D.Impulse);
     Destroy(gameObject, 1f);
 }
Пример #7
0
    public void InitTarget()
    {
        // Get components
        moveTowards   = GetComponent <MoveTowards> ();
        rotateTowards = GetComponent <RotateTowards> ();

        // Set points value loss
        pointsValueLoss = targetManager.pointsValueLoss;

        // Set target transform
        moveTowards.target   = player.transform;
        rotateTowards.target = player.transform;

        // Enable scripts
        moveTowards.enabled   = true;
        rotateTowards.enabled = true;
    }
Пример #8
0
    void CreateRocket()
    {
        GameObject rocket = Instantiate(RocketPrefab);

        Destroy(rocket, 20f); // be sure it's destroyed after a while
        rocket.transform.parent   = transform.parent;
        rocket.transform.position = transform.position + transform.TransformVector(RocketOffset);
        rocket.transform.rotation = transform.rotation;
        RotateTowards parentRotateTowards = GetComponent <RotateTowards>();

        if (parentRotateTowards != null)
        {
            RotateTowards rotateTowardsComp = rocket.AddComponent <RotateTowards>();
            rotateTowardsComp.Target = parentRotateTowards.Target;
            rotateTowardsComp.LockDistanceToTarget();
            rocket.transform.localScale = transform.localScale;
        }
    }
Пример #9
0
    public void InitTarget()
    {
        //get component
        moveTowards          = GetComponent <MoveTowards>();
        rotateTowards        = GetComponent <RotateTowards>();
        destructionParticles = destructionParticlesContainer.GetComponentsInChildren <ParticleSystem>();

        //set points value loss
        pointsValueLoss = targetManager.pointsValueLoss;

        //set target transform
        moveTowards.target   = player.transform;
        rotateTowards.target = player.transform;

        //store original pitch
        originalPitch = hitClip.pitch;

        //set points display
        pointsDisplay = targetManager.pointsDisplay;

        //enable scripts
        moveTowards.enabled   = true;
        rotateTowards.enabled = true;
    }
Пример #10
0
        private void Update(EvaluationContext context)
        {
            var worldToClipSpace = Matrix.Multiply(context.WorldToCamera, context.CameraToClipSpace);
            //Matrix worldToView = context.WorldToCamera * context.CameraProjection;
            //var worldToClipSpace = context.WorldToCamera
            //var viewToWorld = Matrix.Invert(worldToClipSpace);

            var brightness = Brightness.GetValue(context);

            var color             = Color.GetValue(context);
            var randomizeColor    = RandomizeColor.GetValue(context);
            var size              = Size.GetValue(context);
            var randomizeSize     = RandomizeSize.GetValue(context);
            var stretch           = Stretch.GetValue(context);
            var distanceFromLight = DistanceFromLight.GetValue(context);
            var spread            = Spread.GetValue(context);
            var randomizeSpread   = RandomizeSpread.GetValue(context);
            var positionFactor    = PositionFactor.GetValue(context);
            var randomizePosition = RandomizePosition.GetValue(context);

            var mixPointLightColor = MixPointLightColor.GetValue(context);

            var referencedLightIndex = LightIndex.GetValue(context);

            var innerFxZone      = InnerFxZone.GetValue(context);
            var edgeFxZone       = EdgeFxZone.GetValue(context);
            var zoneFxScale      = FxZoneScale.GetValue(context);
            var zoneFxBrightness = FxZoneBrightness.GetValue(context);

            var matteBoxZone = MattBoxZone.GetValue(context);

            var rand       = new Random(RandomSeed.GetValue(context));
            var fxZoneMode = (ZoneFxModes)FxZoneMode.GetValue(context);

            var rotation       = Rotation.GetValue(context);
            var rotationSpread = RotationSpread.GetValue(context);

            var rotateTowards = (Categories)RotateTowards.GetValue(context);

            int startLightIndex = 0;
            int endLightIndex   = context.PointLights.Count;

            _tempList.Clear();


            if (brightness > 0.00001f)
            {
                if (referencedLightIndex >= 0)
                {
                    startLightIndex = referencedLightIndex;
                    endLightIndex   = referencedLightIndex + 1;
                }

                var aspectRatio = (float)context.RequestedResolution.Width / (float)context.RequestedResolution.Height;

                for (int lightIndex = startLightIndex; lightIndex < endLightIndex; lightIndex++)
                {
                    var pointLight = context.PointLights.GetPointLight(lightIndex);
                    var lightPosDx = pointLight.Position.ToSharpDxVector4(1);

                    var posInViewDx = SharpDX.Vector4.Transform(lightPosDx, worldToClipSpace);
                    posInViewDx /= posInViewDx.W;

                    // Ignore light sources behind
                    var hideFactor = posInViewDx.Z < 0 ? 0 : 1;

                    posInViewDx /= posInViewDx.W;
                    var lightPosInView2D = new Vector2(posInViewDx.X, posInViewDx.Y);

                    var count = SpriteCount.GetValue(context).Clamp(0, 1000);
                    if (count != _sprites.NumElements)
                    {
                        _sprites = new StructuredList <Sprite>(count);
                    }

                    // Render Planes
                    for (var i = 0; i < count; ++i)
                    {
                        var f = count <= 1 ? 0 : ((float)i / (count - 1) - 0.5f);
                        var positionOnLine = (float)((-distanceFromLight
                                                      + f * spread * 2
                                                      + randomizeSpread * (rand.NextDouble() - 0.5) + 1));

                        Vector2 objectScreenPos = lightPosInView2D * positionOnLine * positionFactor + (new Vector2(1, 1) - positionFactor) * lightPosInView2D;

                        objectScreenPos += new Vector2((float)(randomizePosition.X * (rand.NextDouble() - 0.5)),
                                                       (float)(randomizePosition.Y * (rand.NextDouble() - 0.5)));

                        var sizeWithRandom = size * (float)(1.0 + randomizeSize * (rand.NextDouble() - 0.5)) / 0.2f;

                        var colorWithLight = new Vector4((color.X + randomizeColor.X * (float)(rand.NextDouble() - 0.5) * 4) * MathUtils.Lerp(1f, pointLight.Color.X, mixPointLightColor),
                                                         (color.Y + randomizeColor.Y * (float)(rand.NextDouble() - 0.5) * 4) * MathUtils.Lerp(1f, pointLight.Color.Y, mixPointLightColor),
                                                         (color.Z + randomizeColor.Z * (float)(rand.NextDouble() - 0.5) * 4) * MathUtils.Lerp(1f, pointLight.Color.Z, mixPointLightColor),
                                                         color.W * (1 - randomizeColor.W * (float)(rand.NextDouble() * 2)));
                        var spriteColor = Vector4.Clamp(colorWithLight, Vector4.Zero, new Vector4(100, 100, 100, 1));

                        var triggerPosition = fxZoneMode == ZoneFxModes.Lights
                                                  ? lightPosInView2D
                                                  : objectScreenPos;

                        var d          = GetDistanceToEdge(triggerPosition);
                        var cInnerZone = MathUtils.SmootherStep(innerFxZone.Y, innerFxZone.X, 1 - d);
                        var cEdgeZone  = MathUtils.SmootherStep(edgeFxZone.X, edgeFxZone.Y, 1 - d);
                        var cMatteBox  = MathUtils.SmootherStep(matteBoxZone.Y, matteBoxZone.X, 1 - d);

                        var totalTriggerAmount = (cInnerZone + cEdgeZone) * cMatteBox;

                        sizeWithRandom *= (1 + zoneFxScale * totalTriggerAmount).Clamp(0, 100);

                        var brightnessEffect = (zoneFxBrightness * totalTriggerAmount).Clamp(0, 100);
                        spriteColor.X += brightnessEffect;
                        spriteColor.Y += brightnessEffect;
                        spriteColor.Z += brightnessEffect;
                        spriteColor.W  = ((spriteColor.W + brightnessEffect)).Clamp(0, 1);

                        spriteColor.W *= cMatteBox * pointLight.Color.W;

                        // This might actually be a good idea. Maybe we should do this later..
                        // Fade with incoming alpha from FlatShaders and Materials
                        //color.W *= materialAlpha;

                        float spriteRotation = rotation;

                        switch (rotateTowards)
                        {
                        case Categories.Object:
                            break;

                        case Categories.Light:
                            spriteRotation -=
                                (float)(Math.Atan2((objectScreenPos.X - lightPosInView2D.X) * aspectRatio, objectScreenPos.Y - lightPosInView2D.Y) +
                                        MathF.PI) * (180 / MathF.PI);
                            break;

                        case Categories.ScreenCenter:
                            spriteRotation -= (float)(Math.Atan2(objectScreenPos.X, objectScreenPos.Y) + MathF.PI) * 180f / MathF.PI;
                            break;

                        default:
                            throw new ArgumentOutOfRangeException();
                        }

                        // // Transforom UV to pick correct texture cell
                        // if (TextureCellsRows == 0)
                        //     TextureCellsRows = 1;
                        //
                        // if (TextureCellsColumns == 0)
                        //     TextureCellsColumns = 1;

                        // int row = (int)(Math.Floor(i / TextureCellsColumns) % TextureCellsRows);
                        // int column = (int)(i % TextureCellsRows);
                        //
                        // var translationUV = new Vector3(1 / TextureCellsColumns * column, 1 / TextureCellsRows * row, 0);
                        // var rotationUV = new Quaternion();
                        // var scaleUV = new Vector3(1 / TextureCellsColumns, 1 / TextureCellsRows, 0);
                        // var pivotUV = new Vector3(0, 0, 0);
                        //
                        // var transformUV = Matrix.Transformation(pivotUV, new Quaternion(), scaleUV, pivotUV, rotationUV, translationUV);
                        // var prevTransformUV = context.TextureMatrix;
                        // context.TextureMatrix = transformUV * prevTransformUV;
                        spriteColor.W *= brightness;

                        _tempList.Add(new Sprite
                        {
                            PosInClipSpace = objectScreenPos,
                            Size           = sizeWithRandom * stretch * hideFactor,
                            Color          = spriteColor,
                            RotationDeg    = spriteRotation + f * rotationSpread * 180,
                            UvMin          = Vector2.Zero,
                            UvMax          = Vector2.One,
                        });
                    }
                }
            }
            // Copy to structured array
            if (_tempList.Count != _sprites.NumElements)
            {
                _sprites = new StructuredList <Sprite>(_tempList.Count);
            }

            for (var spriteIndex = 0; spriteIndex < _tempList.Count; spriteIndex++)
            {
                _sprites.TypedElements[spriteIndex] = _tempList[spriteIndex];
            }
            OutBuffer.Value = _sprites;
        }
Пример #11
0
 private void Start()
 {
     predict    = gameObject.GetComponent <Predict>();
     rotate     = new RotateTowards();
     enemyCount = new List <GameObject>();
 }