unity怎么获取物体

unity怎么获取物体,第1张

Unity可以通过GetChild功能快速获取到物体或子物体的。

*** 作步骤:

1、打开Unity,新建一个工程;

2、在场景中,新建一个“GameObject”,在其下再新建一个“Cube”和“Sphere”,适当调整页面的布局;

3、把“GameObject”下的子物体“Sphere”隐藏;

4、在工程中,新建一个脚本“GetChildTest”,双击脚本或者右键“OpenC#Project”打开脚本;

5、在“GetChildTest”脚本上编写代码,首先设置一个变量获取对象,然后在Update函数里按下“A”键,打印第一个子物体的名称,按下“S”键,打印第二个子物体的名称,并显示该物体;

6、脚本编译正确,回到Unity界面,把脚本赋给“GameObject”,并把“GameObject”赋给脚本对应变量;

9、运行场景,按下“A”“S”键,控制台console打印信息,并且“Sphere”显示就可以了。

用 For 检查一次 Array

例如

C#:

//阵列

public GameObject[] players;

//检查的 GameObject

public GameObject player;

function Start(){

for(i = 0; i < playerslength; i++){

if(players[i] = player){

DebugLog("序列号是"+i);

}

}

}

Unity中时间处理使用的是SystemDatetime

//取得现在的时间

SystemDateTime now = SystemDateTimeNow;

//得到任意时间的DateTime(年月日时分秒)

SystemDateTime date1 = new DateTime(2010,8,18,16,32,0,DateTimeKindLocal);

unity可以导入其它语言编写(和编译)的代码,称为原生插件(Native Plugins)。今天为大家分享如何创建Unity原生插件。

Unity中的托管和非托管插件

连接不同的代码并非Unity首创的。若你是Windows用户,可能听说过DLL,动态链接库的缩写。与单机应用类似,它们是编译过的软件。不同的是,它们不能直接执行,因为它们是被专门设计为供其它应用使用的。

Unity支持两种插件:托管(Managed)和非托管(Unmanaged)的。前者是用C#编写并编译为通用中间语言(CIL)的字节码语言。托管插件与C#脚本一样强大,且带有编译过的源码。非托管(或原生)插件,是使用其它语言编写的软件,典型是C++。它们在功能上几乎没什么限制,而且因为都被编译为机器码所以通常比传统的脚本要快。

第一步:新建C++项目

本例中,我用的是Visual Studio 2015;你可以选择任意IDE编译C++代码。首先创建一个非托管C++库也就是新建项目。打开Visual Studio,依次点击File | New Project ,选择Visual C++ | Win32 Console Application。

在给项目命名后(本例中为TestDLL),确保将应用类型(Application type)设为DLL,附加选项(Additional options)下选择空项目(Empty project)。

至此,Visual C++解决方案已经准备好,我们可以开始编写代码了。

第二步:编写库

C++代码通常分为两个文件。函数定义(头文件)和函数实现(实现文件)。实现文件为cpp文件,放在ResourceFiles目录下,头文件为同名h放在HeaderFiles目录下。本例中我们创建一个头文件和一个实现文件;实现文件将包含所有要保存到DLL的功能。可以在相应的文件夹上单击右键新建文件,然后依次选择Add(添加)>NewItem(新选项)。

实现部分:TestDLLSortcpp

开始编码,实现给数组排序。

[AppleScript] 纯文本查看 复制代码

010203040506070809101112 #include "TestDLLSorth" #include <algorithm> extern "C" { void TestSort(int a[], int length) { std::sort(a, a+length); } }

5~7行使用了algorithm 库里的数组排序函数std:sort。如果熟悉C++11就会知道。只增加了extern "C"块,必须用它将TestSort的引用导出到DLL。

头文件:TestDLLSorth

实现文件中的定义必须与头文件保持完全一致。它必须包含TestSort原型也就是函数签名。

[AppleScript] 纯文本查看 复制代码

123456 #define TESTDLLSORT_API __declspec(dllexport) extern "C" { TESTDLLSORT_API void TestSort(int a[], int length); }

其余部分是创建DLL必须的代码。TESTDLLSORT_API可以是任意名字,用来标记所有的导出函数。在更复杂软件中,TESTDLLSORT_API应该根据需要绑定到 __declspec(dllimport) 上。但是在本例中,没有必要。

第三步:编译

最后一步是在Visual Studio中编译我们的DLL。请确保发布平台设置正确(32位或64位)。然后依次选择Build>Build Solution。

在屏幕下方的控制台上会看到输出日志如下:

[AppleScript] 纯文本查看 复制代码

0102030405060708091011121314 1>------ Rebuild All started: Project: TestDLL, Configuration: Release x64 ------ 1> TestDLLSortcpp 1> Creating library C:\Users\Alan Zucconi\Documents\Visual Studio 2015\Projects\TestDLL\x64\Release\TestDLLlib and object C:\Users\Alan Zucconi\Documents\Visual Studio 2015\Projects\TestDLL\x64\Release\TestDLLexp 1> Generating code 1> All 30 functions were compiled because no usable IPDB/IOBJ from previous compilation was found 1> Finished generating code 1> TestDLLvcxproj -> C:\Users\Alan Zucconi\Documents\Visual Studio 2015\Projects\TestDLL\x64\Release\TestDLLdll ========== Rebuild All: 1 succeeded, 0 failed, 0 skipped ==========

若发现有警告如:warning C4273: inconsistent dlllinkage,这可能表示编译器不确定使用__declspec(dllimport) 还是 __declspec(dllexport)。若想为Unity创建原生插件,就使用后者。

第四步:导入Unity

根据上面的编译日志,在工程文件中找到编译好的DLL。本例中,它在文件夹x64\Release中。我们只要这个文件。在Unity中使用它的第一步是把它拷贝到Plugins文件夹下。

原生插件通常与 *** 作系统或平台相关。可以查看右侧的检视面板确保每个DLL被包含到正确的平台。

第五步:在Unity中使用

导入后,使用DLL就相对简单了。第一步是使用DLLImport定义入口(EntryPoint)。你需要指定DLL名和函数名。会提供别名让它可以像其它函数一样被调用。

[AppleScript] 纯文本查看 复制代码

0102030405060708091011121314151617181920 using UnityEngine; using SystemRuntimeInteropServices; public class TestDLL : MonoBehaviour { // The imported function [DllImport("TestDLL", EntryPoint = "TestSort")] public static extern void TestSort(int [] a, int length); public int[] a; void Start() { TestSort(a, aLength); } }

入口的字符串必须与C++库中的名字一样。但你可以使用如下方法调用函数;以后C#就这样调用它。

你应该注意到Unity在编辑器中不能检测非托管DLL;必须运行游戏来检测是否成功连接。对于托管的DLL,则可以静态检测。

1private Rigidbody a;

2aisKinematic=false ;

Unity 是基于GNOME桌面环境的用户界面, 由Canonical公司开发,主要用于Ubuntu *** 作系统。

Unity作为Compiz的插件,是使用C++和Vala编程语言实现的,并使用了不常用的Nux的OpenGL工具包。

作为Compiz的一个插件,Unity的GPU加速性能可以广泛支持不同的硬件体系。

以上就是关于unity怎么获取物体全部的内容,包括:unity怎么获取物体、unity如何获取点击物件在阵列里 的序列号、unity 怎么获取十六进制等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/9348822.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存