__UFNHGGI_H__ کاربر جدید
تاريخ عضويت: 2 شنبه 23 بهمن 1391 تعداد ارسالها: 16
1 شنبه 6 اسفند 1391 - 23:01 |
|
|
سلام
من چند وقت پیش می خواستم یه سری چیزا رو تو سی پلاس بنوسم و تو یونی استفاده کنم !
بعد چون به توابعی مثل Debug.log یونی احتیاج داشتم اونو رو برا سی پلاس هم پیاده سازی کردم
الان میشه برا یونیتی پلاگین نوشت و توی اون هم از توابع یونیتی استفاده کرد !
فعلا همون debug رو نوشتم بقیه به کار نمیومد !
خلاصه اسمش گذاشتم ++Uni
اینم یه نمونه تابع خوب که برا کار خودم نوشتم !
كد: |
UEXPORT void UCALL UVec3_Array_Get_Dist(Vec3* _In_Array, int _In_ArrayLen, Vec3* _In_Point, float* _Out_Array )
{
#ifdef WIN32
# ifdef _DEBUG
if(!_In_Array)
{
UnityEngine::Debug::LogError(L"NativeFunction\t" __FUNCTIONW__ L" arg0 is NULL");
return;
}
if(!_In_Point)
{
UnityEngine::Debug::LogError(L"NativeFunction\t" __FUNCTIONW__ L" arg2 is NULL");
return;
}
if(!_Out_Array)
{
UnityEngine::Debug::LogError(L"NativeFunction\t" __FUNCTIONW__ L" arg3 is NULL");
return;
}
LARGE_INTEGER $t1,$t2,$freg;
QueryPerformanceCounter(&$t1);
# endif
# ifndef NOOMP
# pragma omp for nowait
# endif
for(int i = 0; i < _In_ArrayLen; i++)
{
_Out_Array[i] = sqrtf((_In_Array[i].x - _In_Point->x) * (_In_Array[i].x - _In_Point->x)
+ (_In_Array[i].y - _In_Point->y) * (_In_Array[i].y - _In_Point->y)
+ (_In_Array[i].z - _In_Point->z) * (_In_Array[i].z - _In_Point->z));
}
# ifdef _DEBUG
QueryPerformanceCounter(&$t2);
QueryPerformanceFrequency(&$freg);
float $elapsed = ((float)($t2.HighPart - $t1.HighPart)) / $freg.HighPart;
WCHAR $buff[64];
wsprintf($buff, L"Elapsed Time : %f", $elapsed);
UnityEngine::Debug::Log($buff);
# endif
#else
//LinMacAnd...
#endif
}
|
کسی نظری داره بگه !
نظر خودم :: به نظرم چیز بیخودی نوشتم ! اخه کی تو سی پلاس برا یونیتی کد می زنه
|
|
|