Unity ebelembeç mekaniği nasıl yapılır?

Kernel60Hz

Decapat
Katılım
22 Nisan 2023
Mesajlar
221
Çözümler
1
Daha fazla  
Cinsiyet
Erkek
Bir Hyper casual oyun yapıyorum isteğim şu oyunculardan birisine rastgele ebe tagı veriliyor zaten ama ebe olan kişi birisine değdiğinde ebe tagı değdiği kişiye aktarılmıyor.
 

1. Oyuncuları Tanımla​

Öncelikle oyuncuları ve ebe tagını tanımlayalım. Oyuncuların bir listesini tutacağız ve ebe olan oyuncuyu belirleyeceğiz.

Kod:

using System.Collections.Generic;
using UnityEngine;

public class TagGame : MonoBehaviour
{
public List<GameObject> players; // Oyuncuları tutan liste
private GameObject currentTagger; // Ebe olan oyuncu

void Start()
{
AssignRandomTagger();
}

void AssignRandomTagger()
{
int randomIndex = Random.Range(0, players.Count);
currentTagger = players[randomIndex];
// Ebe olan oyuncuyu belirten bir işaret (örneğin renk değişikliği) yapabilirsin
currentTagger.GetComponent<Renderer>().material.color = Color.red;
}

void Update()
{
// Oyun mantığını burada kontrol edebilirsin
}

void OnCollisionEnter(Collision collision)
{
if (collision.gameObject == currentTagger)
{
GameObject hitPlayer = collision.other.gameObject;
if (players.Contains(hitPlayer))
{
TransferTag(hitPlayer);
}
}
}

void TransferTag(GameObject newTagger)
{
// Eski ebeden rengi geri al
currentTagger.GetComponent<Renderer>().material.color = Color.white;
// Yeni ebeye tag ver
currentTagger = newTagger;
currentTagger.GetComponent<Renderer>().material.color = Color.red;
}
}

2. Oyuncuların Çarpışma Kontrolü​

Oyuncuların çarpışma anında ebe tagının aktarılması için OnCollisionEnter fonksiyonunu kullanıyoruz. Bu fonksiyon iki oyun objesinin çarpışmasını kontrol eder.

3. Ebe Tagının Aktarılması​

Ebe tagının aktarılması için TransferTag fonksiyonunu kullanıyoruz. Bu fonksiyon, eski ebeden tagı alıp yeni ebeden tagı aktarıyor.

Özet​

Bu temel örnek, oyuncuların ebe tagını rastgele bir oyuncuya verip ardından çarpışma anında tagın aktarılmasını sağlar. Kendi oyununda ek özellikler ekleyerek daha karmaşık ve eğlenceli hale getirebilirsin.
 

1. oyuncuları tanımla​

Öncelikle oyuncuları ve ebe tagını tanımlayalım. Oyuncuların bir listesini tutacağız ve ebe olan oyuncuyu belirleyeceğiz.

Kod:

Using System. Collections. Generic;
Using unityengine;

Public class taggame: Monobehaviour.
{
Public list<gameobject> players; // oyuncuları tutan liste.
Private gameobject currenttagger; // ebe olan oyuncu.

Void Start()
{
AssignRandomTagger();
}

Void AssignRandomTagger()
{
İnt randomındex = random. Range(0, players. Count);
Currenttagger = players[randomIndex];
// Ebe olan oyuncuyu belirten bir işaret (örneğin renk değişikliği) yapabilirsin.
currentTagger.GetComponent<Renderer>().material.color = Color.red;
}

Void Update()
{
// Oyun mantığını burada kontrol edebilirsin.
}

Void oncollisionenter(collision collision)
{
İf (collision. Gameobject == currenttagger)
{
Gameobject hitplayer = collision. Other. Gameobject;
İf (players. Contains(hitplayer))
{
Transfertag(hitplayer);
}
}
}

Void transfertag(gameobject newtagger)
{
// Eski ebeden rengi geri al.
currentTagger.GetComponent<Renderer>().material.color = Color.white;
// Yeni ebeye tag ver.
Currenttagger = newtagger;
currentTagger.GetComponent<Renderer>().material.color = Color.red;
}
}

2. oyuncuların çarpışma kontrolü​

Oyuncuların çarpışma anında ebe tagının aktarılması için oncollisionenter fonksiyonunu kullanıyoruz. Bu fonksiyon iki oyun objesinin çarpışmasını kontrol eder.

3. ebe tagının aktarılması​

Ebe tagının aktarılması için transfertag fonksiyonunu kullanıyoruz. Bu fonksiyon, eski ebeden tagı alıp yeni ebeden tagı aktarıyor.

özet​

Bu temel örnek, oyuncuların ebe tagını rastgele bir oyuncuya verip ardından çarpışma anında tagın aktarılmasını sağlar. Kendi oyununda ek özellikler ekleyerek daha karmaşık ve eğlenceli hale getirebilirsin.
Kod yarım sanırsam.
 

Technopat Haberler

Yeni konular

Geri
Yukarı