你是指的是将嵌入html页面的unity3d文件作为独立软件运行吧?这个是不能独立运行的,如果要在单机上打开文件可以有下面几种方法:
将文件嵌入页面,如果你已经下载并安装了unitywebplayer插件,是可以离线打开页面的,如果你不想通过浏览器来看,那么这个方法可能不适合你;
用Visual Studio编写一个软件(用C#、VB、VC++各种语言都可以),在窗体中放一个WebBrowser控件,然后将WebBrowser控件的url属性设置为需要显示的页面文件(嵌入了unity3d文件)的路径,这样看起来就是一个独立的软件了。
原理同上,安装了unitywebplayer插件后,在窗体中放一个UnityWebPlayer Control控件(要添加COM组件到工具箱),将控件的src属性设为你需要显示的unity3d文件路径,这样也可以成为一个独立运行的软件,还可以通过组件的SendMessage方法与场景交互。效果如下:
这个是最彻底的,如果你有工程源码,重新发布成独立运行的软件就行了。
光有这个路径是不行的,还要在unity3d中的player设置里面,在android那个选项卡下面,有个internal给改成SDCard就可以读写了。 拓展:在plugins的android下建立AndroidManifestxml然后配置android的设置
Unity3d中GameObject对象可以包括其他子GameObject,并且本身包括多个Component
1.GameObjectFind("myObject") or FindGameObjectByTag will search the scene for an object called myObject
2. transformFind("myObject") will only search the game objects children for an object called myObject
3.GetComponent用来获取组件。
Transform Find(String name) Transform FindChild(String name)
查找名为name的(transformgameObject)直接子物体并返回该子物体的Transform属性。不能是孙子物体或更低辈分的子物体。
2可以在name中使用字符'\' 遍历整个路径。其中路径的根必须是transformgameObject的直接子物体,不能是孙子物体或更低辈分的子物体。
这样就可以访问到以transformgameObject为根的物体树,包括其子物体,孙子物体,曾孙物体。。。。
若Cube物体有一个直接子物体Cube1,Cube1有一个直接子物体Cube2,我们就可以在Cube的脚本中使用transformFind("Cube1/Cube2");
或transformFindChild("Cube1/Cube2");
这样就直接访问到了transformgameObject的孙子物体Cube2。
Unity3d中要对对象进行 *** 作必须首先去获取得到场景中的对象,那么弄清除获取对象的小细节就能够事半功倍
工具/原料
Unity3d和其内置的编译器
方法/步骤
在层级面板中选择多个对象相同的部分在监听器面板中给显示出来并且批量 *** 作
在Untiy3d的层级面板中创建多个对象并有复杂的父子级关系
在EmptyObject上挂载的C#脚本来通过GameObject的(静态的方法)Find()的对象名称获取G1对象,通过获取G1对象的直接父节点对象打印输出信息
分别通过EmptyObject挂载C#和Cube没有挂载C# 的GameObject 静态方法find()的元素目录(精确指定对象)获取一个指定的对象,获取的对象分为隐藏和显示两种情况
在EmptyObject上挂载的C#脚本通过transform(公共的方法)find()的对象的名称获分别获取G1,G5和G6。结果只能够获取挂载C#的对象的直接子节点对象
分别通过EmptyObject挂载C#和Cube没有挂载C# 的transform公共方法find()的元素目录(精确指定对象)获取一个指定的对象,获取的对象分为隐藏和显示两种情况
7
总结:通过GameObject的静态的find(),对象的名称去查找一个对象从整个层级面板中去匹配一个对象忽略掉目录结构的多少和是否对象挂载了该 *** 作的C#脚本,但最后获取的对象可能并不是我们想要的,如果查找的对象被隐藏则找不到通过名称所匹配的对象;通过GameObject的静态的find()对象的目录基本去定位获取对象时一种精确匹配且是不管该匹配的对象是否被隐藏。--------------通过transform的公共find()方法且是对象的名称来匹配的只能够所编译的C#一定是挂载到被查找的对象上面且是找其直接子节点对象(非多级子对象),目录查找就忽略掉了多级别的子节点对象。
如下:
1、下载并安装Unity3D以及内置的MonoDevelop(安装Unity3D时勾上即可)。
2、设置Unity3D。在Unity3D中,选择Edit-Preferences…,在External Tools选项卡中的External Script Editor设置为MonoDevelop (built-in)。
3、在MonoDevelop中,选择Tools-Options…,在Unity-Debugger选项卡中的Editor Location中设置Unity3D的所在路径,并勾选Launch Unity Automatically和Editor Location。
4、在Unity3D-Project里右键要调试的代码,在d出的菜单中选择Sync MonoDevelop Project,在MonoDevelop里打开项目代码。
断点调试功能可谓是程序员必备的功能了。unity3d支持编写js和c#脚本,但很多人可能不知道,其实unity3d也能对程序进行断点调试的。
不过这个断点调试功能只限于使用unity3d自带的monodevelop编辑器。而用visual studio是不行的。听说有个叫做unityvs的东西可以使用vs对unity进行断点debug,不过没试过。
以上就是关于如何单机运行Unity3D文件全部的内容,包括:如何单机运行Unity3D文件、unity哪一个路径在安卓中是可以读写的、unity3d 如何获取一个子对象等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)