How to write good script that can use for many objects and use in many scenes without hardcoded.
Hello guys. I'm very new to unity. I'm now making a simple drag and drops games for kids to learn words. My function is very easy. For example i need to spell "m a t a" (as eyes in malay language).
[1]: /storage/temp/145252-untitled.png
For alphabet 'm' and 'a' is already fixed in the pink box. For 'o' and 'u' is just a decoy. Players can move the 't' and 'a'. When 't' and 'a' is at the right place. A win panel will appear.
My problem is. I have many alphabet to move and many scenes. All i can do now is harcoded every alphabet i need to move.
This is my code for alphabet.
public class DD1_1_1 : MonoBehaviour
{
[SerializeField]
public Transform Huruf1;
private Vector2 initialPosition;
private Vector2 mousePosition;
private float deltaX, deltaY;
public static bool locked;
// Start is called before the first frame update
void Start()
{
initialPosition = transform.position;
locked = false;
}
private void OnMouseDown()
{
if (!locked)
{
deltaX = Camera.main.ScreenToWorldPoint(Input.mousePosition).x - transform.position.x;
deltaX = Camera.main.ScreenToWorldPoint(Input.mousePosition).y - transform.position.y;
}
}
private void OnMouseDrag()
{
if (!locked)
{
mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
transform.position = new Vector2(mousePosition.x - deltaX, mousePosition.y - deltaY);
}
}
private void OnMouseUp()
{
if (Mathf.Abs(transform.position.x - Huruf1.position.x) <= 0.5f &&
Mathf.Abs(transform.position.y - Huruf1.position.y) <= 0.5f)
{
transform.position = new Vector2(Huruf1.position.x, Huruf1.position.y);
locked = true;
}
else
{
transform.position = new Vector2(initialPosition.x, initialPosition.y);
}
}
}
and this is my code for game managers.
{
[SerializeField]
private GameObject winText;
void Start()
{
winText.SetActive(false);
}
void Update()
{
if (DD1_0_1.locked && DD1_0_2.locked)
winText.SetActive(true);
}
}
Can you guys help me how i can write my code efficiently?. Because if i want to make 5 scenes that contain 5 alphabet need to drag to win for each level. I need to create 25 same script and the only different is the script name.
Thank you.
Your answer
Follow this Question
Related Questions
Simple Drag and Drop Jigsaw - Help! 0 Answers
how to manually control angle of sun while in game? 1 Answer
joystick android 3d , help. 0 Answers
Wall Jump with Jump Delay 0 Answers