क्या C # की जगह Unity के साथ C ++ का उपयोग करना संभव है?


23

शीर्षक की तरह यह सब कहते हैं। क्या एकता का उपयोग करके खेल पर C ++ को C ++ से बदलना संभव है?


यह है अगर आप प्रो संस्करण है। अधिक जानकारी के लिए देखें: docs.unity3d.com/Manual/Plugins.html
आरोही

जवाबों:


23

एकता के नि: शुल्क संस्करण के साथ सी ++ का उपयोग करना संभव है, हालांकि अगर आपके पास यूनिटी प्रो लाइसेंस है, तो इसके साथ काम करना आसान है। आपको बस इसे एक DLL में लपेटना है और नीचे दिए गए निर्देशों का पालन करना है कि इसे कहां रखना है।

मैंने एक लेख लिखा है जो इस विषय को शामिल करता है: एकता और DLL: C # (प्रबंधित) और C ++ (अप्रबंधित)

एकता 4 के लिए नि: शुल्क:

  • एकता परियोजना रूट में अप्रबंधित कोड जोड़ें: UnityProject
  • प्लगिन फ़ोल्डर में प्रबंधित कोड जोड़ें: UnityProject->Plugins
  • जब आप कोई प्रोजेक्ट बनाते हैं, तो अनवांटेड कोड को BuildRoot-> Data-> पर कॉपी करेंPlugins

एकता 4 प्रो और किसी भी एकता 5 के लिए:

  • बस DLL को UnityProject-> में कॉपी करेंPlugins

मानव रहित का मतलब C ++ और प्रबंधित का मतलब C # है


1
क्या यह यूनिटी 5 के लिए बदल गया है जहां मुफ्त संस्करण में प्रो संस्करण के सभी इंजन विशेषताएं हैं?
गीकीमोनकी

1
@GeekyMonkey लेख और उत्तर अपडेट किया गया।
MLM

यह यूनिटी 3 डी संदर्भ में सी # के साथ सी # को बदलने की कोशिश करने का कोई मतलब नहीं है। यदि मूल कोड के साथ हस्तक्षेप करने के लिए कहा गया था तो यह उत्तर सहायक हो सकता है।
Aggsol

1
नई IL2C ++ तकनीक के साथ, C # के बजाय C ++ का उपयोग करने के कई कारण नहीं हैं। अभी, यह मोबाइल प्लेटफ़ॉर्म तक ही सीमित है, लेकिन उम्मीद है कि जल्द ही तकनीक पीसी पर उपलब्ध होगी।
JPtheK9

1
@ user2023370 मैंने भाषा को स्पष्ट करने के लिए उस भाग को "एकता 4 और नीचे" अपडेट किया, टिप्पणी के लिए धन्यवाद :)
MLM

1

हालांकि यह असुविधाजनक है। आपको इसे प्राप्त करने के लिए प्रबंधित C ++ लिखना होगा। और हाँ, प्रबंधित सी ++ जैसी कोई चीज है। प्रबंधित का मतलब विशेष रूप से C # और अप्रबंधित C ++ से नहीं है। इसे प्राप्त करने के लिए आपको UnityEngine DLL फ़ाइल आयात करनी होगी। जब आप समाप्त कर लें तो आप इसे (एकता परियोजना का नाम) / प्लगइन्स फ़ोल्डर में डाल दें। यहां वह कोड होगा जिसका आप उपयोग करेंगे: C ++ फ़ाइल में:

public ref class CPPUNITY {
  public:
     void Start() {
         Debug::Log("C++ printed message");
     }

};

C # फ़ाइल में:

     using UnityEngine;
     public class FileName {
         void Start() {
              CPPUNITY.Start();
         }
     }

यह सटीक कोड काम नहीं करेगा लेकिन एक आधार है।


क्या एकता में प्रयुक्त मोनो रनटाइम अंत में मिश्रित मोड असेंबली का समर्थन करता है? हम कुछ साल पहले 4 पर किस्मत नहीं था और वीएस 2012 से विधानसभाओं तो यह वास्तव में बहुत अच्छा होगा!
ओलिवर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.