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
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
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