- Home /
Two localscale.transform on the same object
Hello, I'm creating a game really similar to super hexagon (reference link: https://terrycavanaghgames.com/hexagon/). Only differences are the shape of the obstacles and that I'm doing all the coding from scratch eheh. Anyway I encountered a problem, I have a script named MovementController that makes the objects "bounce" (change scale) synchronized with the song; now, I also want the obstacle objects to change scale so that they move towards the center, where the player is. The problem I'm facing is that it seems like having two different scripts (one with a gradual change scale and the other according to the song) ends up ignoring one (in my case the shrinker which makes the object shrink towards the center). Sorry for the messy coding, I'm pretty much new to C# and thanks in advance for the help.
MovementController to synchronize with song:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MovementController : MonoBehaviour {
float Speed = 10f;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
GameObject AudioProcesser = GameObject.Find("AudioProcesser");
AudioSourceLoudnessTester audioSourceLoudnessTester = AudioProcesser.GetComponent<AudioSourceLoudnessTester>();
float courrentAudio = audioSourceLoudnessTester.clipLoudness;
//Debug.Log("From MovementController: " + courrentAudio);
//transform.localScale = new Vector3(1 + courrentAudio*5, 1 + courrentAudio*5, 0);
Vector2 Scale = new Vector2(1 + courrentAudio, 1 + courrentAudio);
transform.localScale = Vector2.Lerp(transform.localScale, Scale, Speed * Time.deltaTime);
}
}
Shrinker for making the obstacles shrink towards the center:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Shrinker : MonoBehaviour {
float speed = 0.3f;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update()
{
float shrink = Time.deltaTime;
transform.localScale -= new Vector3(shrink * speed, shrink * speed, 0);
if (transform.localScale.x < 0.1f)
{
Destroy(gameObject);
}
}
}
Your answer
Follow this Question
Related Questions
transform.localScale causes images won't dispaly 1 Answer
How do I make a player shoot right and left 2D platformer firing left and right, help! 1 Answer
Having trouble understanding parenting with componants 0 Answers
Can you create a dynamic box collider? 1 Answer
Stop moving when colliding. 2D 1 Answer