private void TurnHandling() { ChangeDirection -= Time.deltaTime; //timern ökar lite varje frame if (ChangeDirection < 0) //om timern har gått förbi noll { Movement = Vector3.Lerp(Movement, WindBehaviour.GetWindMovement(), Mathf.SmoothStep(0f, 1f, .3f)); //börjar röra från startpunkten(Direction) till den nya vindriktningen(WindBehaviour.GetWindMovement) //mathf.smoothstep är ungefär likadan men den går snabbare i början och långsamare i slutet ChangeDirection = 1f; //sätter igång timern igen så att den inte kör klart rotationen } }
void SetIndicator() { IndicatorDir = WindBehaviour.GetWindMovement(); if (IndicatorDir != Vector2.zero) { IndicatorDir.Normalize(); Vector3 up = new Vector3(0, 0, -1); Quaternion rotation = Quaternion.LookRotation(IndicatorDir, up); rotation.x = 0; rotation.y = 0; IndicatorRenderer.transform.rotation = rotation; } }
void Start() { OnCd = true; Charged = false; CamController = GameObject.Find("CameraController").GetComponent <CameraController>(); Direction = WindBehaviour.GetWindMovement(); //tar rikningen vinden är när den spawnas TornadoSprite = GetComponentInChildren <SpriteRenderer>(); //tar spriten för tornado objectets child tornadosprite moving = false; //den börjar med att inte röra sig då den antas laddas upp även om det är 0.1 sekund growing = true; TornadoCollider = GetComponent <CircleCollider2D>(); //tar en circlecollider på objektet DmgDealer = GetComponent <DamageDealer>(); CurrentDmg = DmgDealer.DamageAmount; MaxDmg = CurrentDmg; EventManager.TriggerEvent("Tornado"); StartCoroutine(TornadoSpawnable(4)); }
void Start() { CloudRenderer = GetComponentsInChildren <SpriteRenderer>(); int index = Random.Range(0, CloudSprites.Length - 1); foreach (var renderer in CloudRenderer) { renderer.sprite = CloudSprites[index]; Color CloudColor = renderer.color; CloudColor.a = 0.0f; renderer.color = CloudColor; } //Movement = Random.insideUnitCircle.normalized; Movement = WindBehaviour.GetWindMovement(); ChangeDirection = 0.5f; }
void Update() { if (TornadoSpeed < 0.2f || TornadoSprite.transform.localScale.x <= 0.00001f) { Destroy(gameObject); } SetIndicator(); if (transform.position.x <= CamController.MinX) { transform.position = new Vector3(transform.position.x + 57.58f, transform.position.y, 0); } else if (transform.position.x >= CamController.MaxX) { transform.position = new Vector3(transform.position.x - 57.58f, transform.position.y, 0); } if (AbilitiesInput.Charging == true && Charged == false) //kollar om tornadon laddas { ChargingUpdate(); Direction = WindBehaviour.GetWindMovement(); //tar rikningen vinden är när den spawnas if (AbilitiesInput.TornadoIncrease() != 0) { UpdateSize(true, AbilitiesInput.TornadoIncrease() / 100); } TornadoCollider.enabled = false; } else { TornadoCollider.enabled = true; Charged = true; DmgDealer.DamageAmount = Mathf.RoundToInt(MaxDmg); moving = true; //den rör på sig när den inte laddas så det sätts till true CurrentDmg = Mathf.MoveTowards(MaxDmg, CurrentDmg, 5 * Time.deltaTime); UpdateSize(false, 0.001f); } if (moving == true) { MovingUpdate(); } }
public static WindBehaviour instance; //för att säga att det är just den här verisionen av scriptet som ska användas void Start() { WindMovement = Vector2.up; WindIndicatorRenderer = GetComponentsInChildren <Image>()[1]; //getcomponent av pekarens sprite som ska flyttas och roteras instance = this; //klargör att instance är just det här scriptet }