ชื่อประเภทบอกทุกอย่าง เป็นไปได้หรือไม่ที่จะแทนที่ C # ด้วย C ++ ในเกมที่ใช้ Unity
ชื่อประเภทบอกทุกอย่าง เป็นไปได้หรือไม่ที่จะแทนที่ C # ด้วย C ++ ในเกมที่ใช้ Unity
คำตอบ:
เป็นไปได้ที่จะใช้ C ++ กับ Unity รุ่นฟรีแม้ว่าคุณจะใช้งาน Unity Pro ได้ง่ายขึ้นก็ตาม สิ่งที่คุณต้องทำคือห่อมันใน DLL และทำตามคำแนะนำด้านล่างเกี่ยวกับสถานที่ที่จะวางมัน
ฉันเขียนบทความที่ครอบคลุมหัวข้อนี้: Unity และ DLLs: C # (มีการจัดการ) และ C ++ (ไม่มีการจัดการ)
สำหรับ Unity 4 ฟรี:
- เพิ่มรหัสที่ไม่มีการจัดการลงใน Unity Project Root:
UnityProject
- เพิ่มรหัสที่มีการจัดการไปยังโฟลเดอร์ปลั๊กอิน:
UnityProject
->Plugins
- เมื่อคุณสร้างโครงการให้คัดลอกรหัสที่ไม่มีการจัดการไปที่
BuildRoot
->Data
->Plugins
สำหรับ Unity 4 Pro และ Unity 5:
- เพียงแค่คัดลอก DLLs ลงใน
UnityProject
->Plugins
ไม่มีการจัดการหมายถึง C ++ และการจัดการหมายถึง C #
เป็นไปได้แม้ว่าจะไม่สะดวก คุณต้องเขียน C ++ ที่จัดการเพื่อให้บรรลุ และใช่มีสิ่งเช่นจัดการ C ++ การจัดการไม่ได้หมายถึง C # โดยเฉพาะและ C ++ ที่ไม่มีการจัดการ เพื่อให้บรรลุเป้าหมายคุณจะต้องนำเข้าไฟล์ UnityEngine DLL เมื่อเสร็จแล้วคุณจะใส่ไว้ในโฟลเดอร์ (Unity Project Name) / Plugins นี่คือรหัสที่คุณจะใช้: ในไฟล์ C ++:
public ref class CPPUNITY {
public:
void Start() {
Debug::Log("C++ printed message");
}
};
ในไฟล์ C #:
using UnityEngine;
public class FileName {
void Start() {
CPPUNITY.Start();
}
}
รหัสที่แน่นอนนั้นใช้ไม่ได้ แต่นั่นเป็นฐาน