unity 常识勘误

最近在使用unity的时候,遇到很多物体间数据交互的操作。网上的很多文章写得都不细,关键部位“打了码”,而且说的大都不对,让人烦躁。

总结一下方法:

大概两种情况,

1.脚本在同一个物体上时。这时候用 public static 类型的变量就可以轻松搞定。

2.脚本在不同的物体上。这个时候 public static 是不管事的,从C++底层原理上就说不通。因为在unity中,物体与物体间的交互是在GameObject类级别的,不同的物体间(因为脚本导致物体产生了多态)互相访问的时候,只能看到GameObject 层级,看不到多态附加的新特性。很多文章都没说一定要在同一个物体上,所以我写这篇文章,希望幸运的童鞋搜到之后可以少走弯路。

这个时候的一个取巧的办法是,使用gameObject类内部自带的变量,翻开圣典,看看GameObject的类成员变量,

(其中一部分)

这些都是可以访问到的,只要在你建立的GameObject里面有对应的组件就行。默认是必须有transform的,这些组件里面的public变量就是咱们的战场,position、rotation、scale,这些变量,足足够用了。如果还是不满足,只能使用sendmessage慢函数了。

我一直心存侥幸,希望能找到一个快速有效的办法实现该功能,但是试了很多次,都没有结果。

时间: 2024-10-11 21:13:22

unity 常识勘误的相关文章

如何安装破解Unity, 以

1.Unity官方网址:http://unity3d.com  系统会根据网址IP,自动转到中国区,网址变为:http://unity3d.com/cn/ 点击"获取Unity" 2.选择Personal 版,下载安装程序.   下载的仅是是一个"下载器安装器". 3.双击打开,进行安装 next > I accept,next > 64 bit next  然后是下载选择 4.选择下载和安装路径(根据常识和翻译看着办就行) next 5.然后就是嗷嗷嗷

[我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之灯光介绍Lights

[我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之灯光介绍Lights 既上一篇分享了中文字幕的摄像机介绍Cameras后,本篇分享一下第2个已完工的视频,即<beginner Graphics – Lessons系列之灯光介绍Lights>.听译.时间轴.压制者均为本人.请勿将视频用于非法目的. 有需要高清视频的同学麻烦点个赞并留下你的Email~ 有视频有真相 视频中的重点 类似现实世界,Unity中用灯光照亮场景 没有灯光,场景中的物体在

unity几种优化建议

最简单的优化建议: 1.PC平台的话保持场景中显示的顶点数少于200K~3M,移动设备的话少于10W,一切取决于你的目标GPU与CPU. 2.如果你用U3D自带的SHADER,在表现不差的情况下选择Mobile或Unlit目录下的.它们更高效. 3.尽可能共用材质. 4.将不需要移动的物体设为Static,让引擎可以进行其批处理. 5.尽可能不用灯光. 6.动态灯光更加不要了. 7.尝试用压缩贴图格式,或用16位代替32位. 8.如果不需要别用雾效(fog) 9.尝试用OcclusionCull

unity 获得父子节点

与常识不同,unity中获得父子节点需要通过transform.即先获得父/子节点的transform,然后再通过父/子节点的transform获得父/子节点. 获得父节点gameObject: GameObject parentGameObject=transform.parent.gameObject; 获得子节点gameObject: foreach (Transform child in transform) { GameObject childGameObject=child.game

Unity内存优化

对项目优化有很多,如:mesh合并,减少DrawCall和模型骨骼以及物理计算,合并材质球,优化代码等等. 优化: 1. 更新不透明贴图的压缩格式为ETC 4bit,因为android市场的手机中的GPU有多种,每家的GPU支持不同的压缩格式,但他们都兼容ETC格式. 2.对于透明贴图,我们只能选择RGBA 16bit 或者RGBA 32bit. 3.减少FPS 在ProjectSetting-> Quality中的VSync Count 参数会影响你的FPS,EveryVBlank相当于FPS

Unity的GPU编程问题解析

在游戏蛮牛知识问答里面经常有人询问关于Unity中的Shader编程方面的函数问题,GPU编程其实就是把固定流水线的各种矩阵变换放到了GPU里面进行. 下面给大家主要介绍一些基本的常识: 我们在Shader编程中经常使用 Vertex & Fragment Shaders,通过举例说明: struct Vert {       float4 vertex : POSITION;       float3 normal : NORMAL;       float4 texcoord : TEXCO

Unity sqlite学习笔记一

1.SQLITE的常识 SQLite是一个开源免费的数据库,一般用于嵌入系统或者小规模的应用软件开发中,你可以像使用Access一样使用它. sqlite的主要优点:零配置(Zero Configuration)紧凑(compactness)可移植(Portability)它是运行在Windows,Linux,BSD,Mac OS X和一些商用Unix系统,比如Sun的Solaris,IBM的AIX,同样,它也可以工作在许多嵌入式操作系统下,比如QNX,VxWorks,Palm OS, Symb

Unity 中的协同程序

今天咱就说说,协同程序coroutine.(这文章是在网吧敲的,没有unity,但是所有结论都被跑过,不管你信得过我还是信不过我,都要自己跑一下看看,同时欢迎纠错)先说说啥是协程:协同程序是一个非常让人作呕的东西,它的表现形式非常像线程,对线程有过接触的朋友可能更理解我这句话的意思,你没接触过线程,那么理解它会有一些难度.但是它不存在线程安全问题,可以放心使用.这不是J哥信口雌黄空口白牙跟这猜的,事实是这样的:在操作系统层面,也就是更古老的大神们,觉得“并发”是一个很时髦的东西,很好使,于是他们

像素迷踪,当Unity的Frame Debugger力不从心时

http://www.manew.com/thread-92382-1-1.html 从版本5开始,Unity包含了一个全新的可视化帧调试工具,Frame Debugger.该工具能帮你解决很多图形方面的问题,Z-fighting,GPU状态不正常,渲染队列错误.混合操作错误,过多的draw call,效率低下等等.相比游戏视图中的状态列表,它提供了更加详尽的信息,通过与渲染事件/步骤的交互和检查,你也能学习到大量GPU管线的相关知识.真地,每个开发人员都应该了解这个工具. 本期内容中,我会简要