Unity - Gelişmiş El Feneri Scripti [C#]

ReLaXT

Katılımcı Üye
5 Haz 2016
268
0
Adana
Aşağıda yazdığım script ile Gelişmiş El Feneri sistemi yapabilirsiniz.
El Feneri Açma Kapatma (Sağ Mouse veya F) + Açma/Kapatma Sesleri ve Pil Degiştirme (R) ve El Feneri kapalıyken Pil stabil(bulunduğu değerde) kalıyor. Pil Ömrü %0 olduğunda Eğer R tuşuna basılıp pil değiştirilmesse Fener açılmıyor.

En altta indirme linki var, ugraşamam diyorsanız linkten indirip projenize Import etmeniz yeterlidir.

Resim : https://prnt.sc/jmn38n

Kod:
//Written by RelaXT for TurkHackTeam.net
//Read all comment lines to understand the logic.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class FlashlightClone : MonoBehaviour {

	[SerializeField]
	private Light flashLight; // Inspectorda el fenerinde kullandığınız ışığı buraya sürükleyin.
	[SerializeField]
	private float batteryDuration; //Pil Ömrünün ne kadar olacağı önerim 100'dür.
	[SerializeField]
	private int batteryAmount; //Pil Miktarı (Oyuncunun Üzerinde Taşınan).
	private int maxBatteryAmount; //Oyuncunun taşıyabilecegi maksimum pil miktari önerim 5'tir.

	public Text batteryDurationText; //Unity'de GameObject > UI > Text oluşturun ve bu değere sürükleyin. (Önerim metinleri sol üst köşeye koymanızdır.)
	public Text batteryAmountText; //Unity'de GameObject > UI > Text oluşturun ve bu değere sürükleyin. (Önerim metinleri sol üst köşeye koymanızdır.)

	[SerializeField]
	private float batteryDecreaseRate; //Pilin azalma süresi bunu Inspector panelinden ayarlayabilirsiniz kendinize göre.
	[SerializeField]
	private float maxBatteryDuration; //Maksimum Pil Ömrünün Ne Kadar Olacağı önerim 100'dür.
	[SerializeField]
	private bool isOpen; //Bu el fenerinin açık olup olmadığını kontrol eder. *Değiştirmeyin*
	[SerializeField]
	private bool canReload; //Bu el fenerinin pilinin değişip, değişmeyeceğini kontrol eder. *Değiştirmeyin*

	public AudioSource audioSource; //Buraya FPSControlleri sürükleyin, yani karakterinizi (karakterinize AudioSource eklemeyi unutmayın).
	public AudioClip switchSound; //Buraya Paket içindeki buton sesini sürükleyebilirsiniz yoksa internetten indirip ekleyebilirsiniz.

	v o i d Start () { //V o i d arasındaki boşlukları silin.
		isOpen = true; //El fenerinin açık olduğunu belirtiyoruz. Deiştirmenize gerek yok oyunda belirttiginiz tuşlarla açıp kapatabilirsiniz.
		canReload = false; //Pil değişikliği yapamayacagını belirtiyoruz. Değiştirmenize gerek yok otomatik olarak düzenlenir.
		batteryDuration = maxBatteryDuration; // Pil ömrünü maksimum Pil ömrüne sabitliyoruz. Merak etmeyin sadece tek seferligine sabitler sonra düşmeye devam eder.
	}


	v o i d Update () { //V o i d arasındaki boşlukları silin.
		batteryDurationText.text = "Battery Duration : " + "%" + batteryDuration.ToString ("0"); //Battery Duration yazan yeri degiştirebilirsiniz.
		batteryAmountText.text = "Battery Amount : " + batteryAmount.ToString (); // Battery Amount yazan yeri degiştirebilirsiniz.

		if (Input.GetKeyDown (KeyCode.F) || Input.GetMouseButtonDown(1)) { // Burada F tuşuna yada Mouse Sağ Tuşuna basılınca fenerin açılıp kapanmasını sağlıyor Tuşları degiştirebilirsiniz.
			isOpen = !isOpen;
			audioSource.PlayOneShot (switchSound);
		}
		//Burdan aşağısına dokunmayın.
		if (isOpen == true) {
			flashLight.enabled = true;
			batteryDuration -= Time.deltaTime / batteryDecreaseRate;
		}

		if (isOpen == false) {
			flashLight.enabled = false;
			batteryDuration = batteryDuration;
		}

		if (batteryDuration <= 0) {
			batteryDuration = 0;
			flashLight.enabled = false;
		} else {
			batteryDuration = batteryDuration;
		}

		if (batteryDuration >= maxBatteryDuration) {
			batteryDuration = maxBatteryDuration;
			canReload = false;
		}

		if (batteryDuration < maxBatteryDuration) {
			canReload = true;
		}

		if (canReload == true && Input.GetKeyDown (KeyCode.R) && batteryAmount >= 1) { //Burada hangi tuşla pil değişecegi belirtilmiş KeyCode.R yazanı istediğiniz tuşa atayabilirsiniz.
			batteryAmount -= 1;
			batteryDuration = maxBatteryDuration;
		}
	}
}

Not : Bu script Unity'nin 2018.1.1f1 sürümü kullanılarak yazılmıştır. Düşük sürümlerde çalışma garantisi veremem.

Unity Package olarak :https://drive.google.com/open?id=1euqh2hObuYjKwD3FniDQiUi7Fs30aXID

Virustotal :https://www.virustotal.com/#/file/e69944ec6ed4df568ba181ee2b0b9e0c422e21ec10a15e0deeb12b363397f317/detection
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.