यूनिटी में क्लैश ऑफ क्लैंस जैसा गेम बनाना भाग 2
हमारे ट्यूटोरियल सीरीज के इस दूसरे भाग में, हम अपने क्लैश ऑफ़ क्लैंस जैसे गेम में हमला करने और बचाव करने के लिए सैन्य तंत्र को लागू करेंगे। हम सैन्य इकाइयाँ बनाएंगे, उनकी चाल और व्यवहार का प्रबंधन करेंगे, और खिलाड़ियों को हमलों के दौरान उन्हें तैनात करने की अनुमति देंगे।
सैन्य प्रीफैब की स्थापना
सबसे पहले, हमें ऐसे सैन्य प्रीफ़ैब बनाने होंगे जो खेल में विभिन्न इकाइयों का प्रतिनिधित्व करते हों।
- Hierarchy में राइट-क्लिक करके और 2D Object > Sprite का चयन करके अपने दल के लिए एक नया गेमऑब्जेक्ट बनाएं।
- इसका नाम Warrior रखें और अपनी संपत्तियों में से एक स्प्राइट असाइन करें।
- सैन्य तर्क को संभालने के लिए Troop नामक एक नई स्क्रिप्ट संलग्न करें।
using UnityEngine;
public class Troop : MonoBehaviour
{
public float movementSpeed = 2f;
public int damage = 10;
public float attackRange = 1f;
private GameObject target;
void Update()
{
if (target != null)
{
MoveTowardsTarget();
}
}
public void SetTarget(GameObject newTarget)
{
target = newTarget;
}
private void MoveTowardsTarget()
{
float step = movementSpeed * Time.deltaTime;
transform.position = Vector2.MoveTowards(transform.position, target.transform.position, step);
if (Vector2.Distance(transform.position, target.transform.position) < attackRange)
{
Attack();
}
}
private void Attack()
{
// Logic for attacking the target
Debug.Log("Attacking " + target.name);
}
}
एक सैन्य प्रबंधक बनाना
हम एक ट्रूप मैनेजर बनाएंगे जो सैन्य तैनाती को संभालेगा और युद्ध के मैदान पर सक्रिय सैनिकों का प्रबंधन करेगा।
using System.Collections.Generic;
using UnityEngine;
public class TroopManager : MonoBehaviour
{
public GameObject troopPrefab;
private List activeTroops = new List();
public void DeployTroop(Vector3 position)
{
GameObject troopObject = Instantiate(troopPrefab, position, Quaternion.identity);
Troop troop = troopObject.GetComponent();
activeTroops.Add(troop);
}
void Update()
{
// Here we can handle troop behaviors or remove them if needed
for (int i = activeTroops.Count - 1; i >= 0; i--)
{
if (activeTroops[i] == null)
{
activeTroops.RemoveAt(i);
}
}
}
}
आक्रमण तंत्र का क्रियान्वयन
हमला करने के लिए, हम एक बुनियादी प्रणाली बनाएंगे जहां सैनिक इमारतों या अन्य इकाइयों पर हमला कर सकेंगे।
using UnityEngine;
public class Building : MonoBehaviour
{
public int health = 50;
public void TakeDamage(int damage)
{
health -= damage;
Debug.Log(name + " takes " + damage + " damage.");
if (health <= 0)
{
Destroy(gameObject);
Debug.Log(name + " destroyed!");
}
}
}
यूआई से सैनिकों की तैनाती
इसके बाद, हम सैनिकों को तैनात करने के लिए एक सरल UI बटन सेट अप करेंगे। कैनवास में, एक बटन बनाएं और तैनाती फ़ंक्शन असाइन करें।
using UnityEngine;
using UnityEngine.UI;
public class UIManager : MonoBehaviour
{
public TroopManager troopManager;
public Button deployButton;
void Start()
{
deployButton.onClick.AddListener(OnDeployButtonClicked);
}
private void OnDeployButtonClicked()
{
Vector3 deployPosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
deployPosition.z = 0; // Set z to 0 for 2D
troopManager.DeployTroop(deployPosition);
}
}
शत्रु रक्षा जोड़ना
खेल को और अधिक इंटरैक्टिव बनाने के लिए, आइए हम दुश्मन की सुरक्षा व्यवस्था लागू करें जो सैनिकों पर हमला करेगी।
public class EnemyDefense : MonoBehaviour
{
public float attackRange = 2f;
public int damage = 5;
private Troop target;
void Update()
{
if (target != null)
{
if (Vector2.Distance(transform.position, target.transform.position) < attackRange)
{
Attack();
}
}
}
public void SetTarget(Troop newTarget)
{
target = newTarget;
}
private void Attack()
{
// Logic to damage the target troop
Debug.Log("Attacking troop " + target.name);
target.TakeDamage(damage);
}
}
निष्कर्ष
इस ट्यूटोरियल में, हमने अपने क्लैश ऑफ़ क्लैंस जैसे गेम में हमला करने और बचाव करने के लिए बुनियादी सैन्य तंत्र को लागू किया है। हमने सैन्य तैनाती, आंदोलन, हमलावर व्यवहार और दुश्मन की सुरक्षा को कवर किया है। आप सैन्य प्रकार, विशेष योग्यताएँ और अधिक जटिल दुश्मन AI जोड़कर इन तंत्रों का और विस्तार कर सकते हैं।