यूनिटी में गेम से फ़ोन फ्लैशलाइट सक्षम करें

इस ट्यूटोरियल में, हम यह पता लगाएंगे कि प्लगइन के माध्यम से प्लेटफ़ॉर्म-विशिष्ट API का उपयोग करके Unity गेम से सीधे मोबाइल डिवाइस पर फ्लैशलाइट (टॉर्च) को कैसे नियंत्रित किया जाए। यह कार्यक्षमता गेमप्ले विसर्जन को बढ़ा सकती है या आपके ऐप के भीतर उपयोगिता प्रदान कर सकती है।

स्थापित करना

कोड में गोता लगाने से पहले, सुनिश्चित करें कि आपके पास फ्लैशलाइट वाला मोबाइल डिवाइस है (अधिकांश स्मार्टफ़ोन में यह सुविधा होती है)। साथ ही, सुनिश्चित करें कि आपके पास Unity इंस्टॉल है और C# स्क्रिप्टिंग की बुनियादी समझ है।

कार्यान्वयन चरण

चरण 1: एक मूल प्लगइन बनाएँ

हम iOS और Android दोनों के लिए उनके संबंधित फ्लैशलाइट API तक पहुंच बनाने के लिए एक मूल प्लगइन बनाएंगे।

For Android (Java)

एक जावा क्लास बनाएं जो एंड्रॉइड फ्लैशलाइट एपीआई के साथ इंटरैक्ट करता है।

package com.example.flashlight;

import android.content.Context;
import android.hardware.camera2.CameraAccessException;
import android.hardware.camera2.CameraManager;

public class Flashlight {

    private Context context;
    private CameraManager cameraManager;
    private String cameraId;

    public Flashlight(Context context) {
        this.context = context;
        cameraManager = (CameraManager) context.getSystemService(Context.CAMERA_SERVICE);
        try {
            cameraId = cameraManager.getCameraIdList()[0];
        } catch (CameraAccessException e) {
            e.printStackTrace();
        }
    }

    public void enableFlashlight() {
        try {
            cameraManager.setTorchMode(cameraId, true);
        } catch (CameraAccessException e) {
            e.printStackTrace();
        }
    }

    public void disableFlashlight() {
        try {
            cameraManager.setTorchMode(cameraId, false);
        } catch (CameraAccessException e) {
            e.printStackTrace();
        }
    }
}
For iOS (Objective-C/Swift)

एक ऑब्जेक्टिव-सी या स्विफ्ट क्लास बनाएं जो iOS फ्लैशलाइट एपीआई के साथ इंटरैक्ट करता हो।

#import <AVFoundation/AVFoundation.h>

@interface Flashlight : NSObject

- (void)enableFlashlight;
- (void)disableFlashlight;

@end

@implementation Flashlight

- (void)enableFlashlight {
    AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
    if ([device hasTorch] && [device isTorchAvailable]) {
        [device lockForConfiguration:nil];
        [device setTorchMode:AVCaptureTorchModeOn];
        [device unlockForConfiguration];
    }
}

- (void)disableFlashlight {
    AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
    if ([device hasTorch]) {
        [device lockForConfiguration:nil];
        [device setTorchMode:AVCaptureTorchModeOff];
        [device unlockForConfiguration];
    }
}

@end

चरण 2: Unity C# स्क्रिप्टिंग

प्लेटफ़ॉर्म-विशिष्ट सशर्त संकलन का उपयोग करके इन मूल फ़ंक्शनों को कॉल करने के लिए Unity में एक C# स्क्रिप्ट बनाएं।

using UnityEngine;

public class FlashlightController : MonoBehaviour
{
    private static Flashlight flashlight;

    void Start()
    {
        flashlight = new Flashlight();
    }

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.F))
        {
            ToggleFlashlight();
        }
    }

    void ToggleFlashlight()
    {
        if (IsFlashlightOn())
        {
            flashlight.DisableFlashlight();
        }
        else
        {
            flashlight.EnableFlashlight();
        }
    }

    bool IsFlashlightOn()
    {
        // Implement check for flashlight state based on platform-specific logic
        return false;
    }
}

चरण 3: एकीकरण और परीक्षण

अपने Unity सीन में गेमऑब्जेक्ट से FlashlightController स्क्रिप्ट को जोड़ें। फ्लैशलाइट को चालू और बंद करने के लिए निर्दिष्ट कुंजी (इस मामले में, 'F') दबाकर कार्यक्षमता का परीक्षण करें। अपने लक्षित डिवाइस पर मूल प्लगइन्स का निर्माण और तैनाती सुनिश्चित करें।

निष्कर्ष

अब आप सीख चुके हैं कि प्लगइन के माध्यम से प्लेटफ़ॉर्म-विशिष्ट API का उपयोग करके Unity गेम के भीतर से सीधे मोबाइल डिवाइस पर फ्लैशलाइट को कैसे नियंत्रित किया जाए। यह दृष्टिकोण आपको अपने Unity प्रोजेक्ट में डिवाइस-विशिष्ट सुविधाओं को सहजता से एकीकृत करने की अनुमति देता है, जिससे आपके उपयोगकर्ताओं के लिए गेमप्ले और उपयोगिता दोनों में वृद्धि होती है।

लिंक
Unity