Scale XYZ (Game Mode)

scale objects in Unity

In this Unity C# tutorial, we are going to learn how to scale XYZ a game object in x,y, and z directions in the game mode. We will use 3 ui sliders to scale the game object.

Creating a Procedural Sphere with Scaling Sliders in Unity using C#

Welcome to PlugPea! In this Unity C# tutorial, we will explore how to design and scale a procedural sphere using a series of sliders. Utilizing a C# script called Scale3D, we’ll guide you through the process. 

Step 1: Setting up the Scale3D Script

To begin, we need to create a C# script named Scale3D that enables the scaling of game objects in Unity. Follow these steps:

1. Right-click and select “Create” in the Unity project.

Create in the Unity project

2. Choose “C# Script” to generate a new script.

Choose C# Script

3. Name the “ScaleXYZ” script and double-click it to open it in Visual Studio.

ScaleXYZ script

4. Clear unnecessary “using” statements and add “using UnityEngine.UI” to include Unity Engine UI.

using UnityEngine.UI

Step 2: Implementing the Scale Sliders

Our next task is to create sliders that control the scaling of the sphere. Let’s proceed:

1. Delete the existing code within the ScaleXYZ script.

Delete the existing code

2. Declare three public Slider variables: ScaleX, ScaleY, and ScaleZ.

public Slider variables

3. Save the script and return it to the Unity Editor.

Step 3: Creating the Scale Sliders

To create the sliders in Unity, follow these steps:

1. Right-click within the Unity Editor and navigate to “UI.”

navigate to UI.

2. Select “Slider” to create a slider.

Select Slider

3. Rename the slider as “SliderX” and duplicate it to create “SliderY” and “SliderZ.”

Rename the slider

4. Adjust the canvas and position the sliders as desired.

Adjust the canvas

5. Press the Play button to test and adjust the sliders in real-time.

Press the Play button

Step 4: Adding a Procedural Sphere

Now, let’s add a procedural sphere to our scene:

1. Right-click in Unity and navigate to “3D Object.”

navigate to 3D Object.

2. Choose “Sphere” to create a sphere.

Choose Sphere

3. Set the Transform’s X, Y, and Z positions to zero.

Set the Transform

4. Increase the sphere’s scale to 10, 10, and 10 for better visibility.

Increase the sphere's scale

Step 5: Configuring the Scene

To enhance the visual appeal of our scene, follow these steps:

1. In the Game view, observe the created sphere.

observe the created sphere

2. Change the background color to a solid color by selecting the main camera.

Change the background color

3. In the Inspector, change the Skybox to a solid color (e.g., blue).

change the Skybox

4. Assign a material to the sphere by adjusting the properties in the Mesh Renderer.

Assign a material

Step 6: Scaling the Sphere using Sliders

Let’s now link the sliders to control the sphere’s scaling dynamically:

1. Open the ScaleXYZ script in Visual Studio.

Open the ScaleXYZ

2. Add GameObject.

Add GameObject

3. Implement the private void Update method within the script.

private void

4. Access the 3D model’s transform using Model3D.transform.localScale.

Model3D.transform.localScale

5. Create a new Vector3 instance, setting the scaling values to ScaleX.value, ScaleY.value, and ScaleZ.value.

Create a new Vector3

6. Save the script.

Step 7: Testing the Sphere Scaling

Before running the game, ensure the slider values are appropriately set:

1. Check the minimum, maximum, and current values of the sliders.

Check the minimum

2. Set a suitable range, e.g., between 100 and 1000, with a minimum value of 100.

Set a suitable range

3. Run the game to observe and adjust the sphere’s scale using the sliders in real time.

Step 8: Enhancing the Scene (Optional)

You can further explore by assigning other game objects to the ScaleXYZ script:

1. Create another 3D object, such as a cube, using the “3D Object” menu.

Create another 3D object

2. Set the cube’s position to (0, 0, 0) and scale it to (100, 100, 100).

Set the cube's position

3. Disable the Mesh Renderer component for the sphere to hide it temporarily.

Disable the Mesh Renderer

4. Assign the cube to the Model3D variable in the ScaleXYZ script.

Assign the cube

You can check out the C# script below:

using UnityEngine;
using UnityEngine.UI;


public class ScaleXYZ : MonoBehaviour
{
    public Slider Scalex;
    public Slider Scaley;
    public Slider Scalez;

    public GameObject model3D;

    private void Update()
    {
        model3D.transform.localScale = new Vector3(Scalex.value, Scaley.value, Scalez.value);
    }



}

You can see the code execution example below:

Conclusion

Congratulations! You have successfully created a procedural sphere and implemented scaling sliders using the Scale3D script in Unity. By following this tutorial, you have learned how to control the scale of game objects using sliders dynamically.

Feel free to explore further by applying similar techniques to other transform methods like rotation and translation. Combined with C# scripts, Unity offers a powerful platform for 3D modeling and game development.

Note: The steps in this tutorial are based on Unity and C# programming as of the latest version. If you encounter any discrepancies or issues, please refer to the official Unity documentation or seek assistance from the PlugPea community.

Related Articles

Responses

Your email address will not be published. Required fields are marked *