unity3D 脚本里两个不同功能的代码如果能放一个脚本里效率会有所提升吗?

作者&投稿:朝缪 (若有异议请与网页底部的电邮联系)
在unity3D: c# 怎样调用另外一个c#脚本里面东西?~

对于静态Script(可以不继承MonoBehiviour)
直接用 脚本名.函数名(参数); 调用即可
对于组件
如果是静态成员,同上
如果是动态成员,可以用GetComponent()来获取此脚本的类
也就是使用 GetComponent().函数名(参数);调用
注意:上述其实省略了一个this对象,表示本身,意思是说你用
GetComponent() 获取的对象是此脚本所挂载的对象上的此C#脚本对象
如果你要调用其他物体的脚本的成员,请使用Obj.GetComponent().函数名(参数);这里Obj指的是其他物体的GameObject对象

Unity3D的脚本,并非多线程控制...所以其实你把脚本分散,跟集中在一个脚本里,到编译阶段他都是把代码集中起来...理论上是没有区别的...
但是编译器是死的,当脚本过多,定义static过多的时候,可能会弄出一些奇怪的无用功...这种适当地写在同一个脚本里是最好的.

如果你工程过于庞大,维护的时候太头疼...你就要选择了...把调用性很强的写在一起.
至于为什么是非多线程...已经有人做过实验了,顺序是按加载顺序的倒序进行.并且改变其中一个计算次数也不会改变得出结果的顺序...

性能提升微乎其微。相比代码的维护上,建议把代码分开。如果结构做得好,耦合度低,很多代码还能复用到其他项目中。但是分不分开没有标准。
理论上,继承于MonoBehaviour等unity内置类的类必须/建议一个cs文件。
临时用的参数类/内部类/数据结构/枚举都可以发在相关的类的cs文件中即可。
只要整理有序都是可以的


武宁县18068922046: unity3D脚本中,update fixupdate 和lateupdate的区别 -
宾非沁林: update每帧都执行一次.这是最常用的事件函数.fixedupdate每固定帧绘制时执行一次,和update不同的是fixedupdate是渲染帧执行,如果你的渲染效率低下的时候fixedupdate调用次数就会跟着下降.fixedupdate比较适用于物理引擎的计算,因为是跟每帧渲染有关.update就比较适合做控制.lateupdate在每帧执行完毕调用,他是在所有update结束后才掉,比较适合用于命令脚本的执行.官网上例子是摄像机的跟随,都是在所有update操作完才跟进摄像机,不然就有可能出现摄像机已经推进了,但是视角里还未有角色的空帧出现.以上是参考了别人总结的东西,希望对你有所帮助.

武宁县18068922046: Unity3d vector3.forward和transform.forward的区别 -
宾非沁林: 1. 在unity3d中有2个forward,一个是vector3.forward和transform.forward,这两个forward其实完全不一样.他们之间的区别主要体现在在不同坐标系时的反映上.2. Vector3.forward这个很好理解的,Vector3.forward就是 Vector3(0, 0, 1),也就是向世界坐标的z轴.3. 而Transform.forward则是当前物体的正方向,可以理解为是在Scene视图中这个物体蓝色轴的方向.如果向Transform.forward移动的话,这个物体无论如何旋转,都会朝向他的前方.

武宁县18068922046: unity3d里面Animation和Animator的区别 -
宾非沁林: Unity中Update和Lateupdate的区别.Lateupdate和Update每一祯都被执行,但是执行顺序不一样,先执行Updatee然后执行lateUpdate. 如果你有两个脚本JS1、JS2,两个脚本中都有Update()函数, 在JS1中有 lateUpdate ,JS2中没有.那么...

武宁县18068922046: unity3d c#中下面这两个有什么区别? -
宾非沁林: 1语法区别.2服务端脚本语言(C#)和客户端脚本语言区别(JS).

武宁县18068922046: unity 怎么比较两个asset -
宾非沁林: Unity3D 里有两种动态加载机制:一个是Resources.Load,另外一个通过AssetBundle,其实两者区别不大. Resources.Load就是从一个缺省打进程序包里的AssetBundle里加载资源,而一般AssetBundle文件需要你自己创建,运行时动态加载,...

武宁县18068922046: unity3d API里的 实时运行类 和 编辑器类 有什么区别,能不能具体举个例子,我是新手不太懂 -
宾非沁林: Editor是用来给unity这个软件本身用的,比如自定义一些小工具,比如自动化打包.运行时的UnityEngine,里面才是你游戏里面需要用到的功能,比如物理引擎、动画系统等等.

武宁县18068922046: 在unity3D: c# 怎样调用另外一个c#脚本里面东西? -
宾非沁林: 例:第一个脚本名字为Class_1,第二个脚本名字为Class_2,Class_1调用Class_2 如果Class_2没有绑定在任何GameObject上,那在Class_1里写法:Class_2 c2 = new Class_2(); 如果Class_2绑定在GameObject上,那在 Class_1里写法:Class_2 c2 = null; void Start() { c2 = GameObject.Find("绑定的GameObject名字").GetComponent<Class_2>(); }

武宁县18068922046: unity3d c#脚本是什么作用 -
宾非沁林: u3d支持c#和js两种脚本,而且c#是最普遍的,咱们看unity用的编译器,是c#的跨平台开源编译器mono,而且是unity更改过得mono,这个编译器是基于c#.net2.0的语法的,但是由于unity的更改,使得它也支持了一些.net3.5的语法,比如匿名函数lambda表

武宁县18068922046: Unity3D怎么打开两个窗口 -
宾非沁林: unity3d不能同时打开同一个项目,能打开不同项目,打开一个项目后,再点击unity图标,会弹出警告窗,然后你再先把其它项目来打开

武宁县18068922046: Unity3D一个脚本如何调用另一个脚本的东西
宾非沁林: js调用js 直接脚本名.变量名 C#调用C#声明static public 变量名,然后脚本名.变量名调用 js调用C# var c = gameObject.GetComponent("脚本名"); 脚本名.变量名调用 C#调用js 脚本名c = (脚本名)gameObject.GetComponent&lt;脚本名&gt;(); 脚本名.变量名调用

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网