unity 怎么让unity 获取gameobjectt不随相机移动变化位置

posts - 311, comments - 0, trackbacks - 0, articles - 0
通过Hierarchy面板下的Create菜单可以手动地创建一个GameObject,它可以是一个相机,一个灯光,或者一个简单的模型,当我们要在程序里面动态地创建一个相机的时候,可以new一个GameObject,然后把Camera组件Add给它就可以了,创建灯光,GUI等也类似,但要创建简单模型的时候,我发现并没有类似Cube,Sphere这样的组件可供添加,后面知道,通过GameObject这个类的一个静态方法可以达到这个目的static GameObject CreatePrimitive(PrimitiveType type);可以根据PrimitiveType创建五种类型的基础模型PrimitiveType.Plane,PrimitiveType.Cube,PrimitiveType.Sphere,PrimitiveType.Capsule,PrimitiveType.CylinderUnity3D提供一种被称为Prefab的预置对象,它是以文件的形式保存在硬盘上的一个GameObject,它里面可能包含了各种设置,组件,还有一些脚本。Prefab允许我们在不同的Scene,甚至Project中使用同一个对象,例如我实现了一个子弹,通过打包成Prefab,我可以在另外一个游戏里面直接使用它。当一个Prefab对象被修改的时候,它的所有实例都会相应地被修改在代码里面动态地实例化一个Prefab对象public GameOobj = Instantiate( obj&&);要先创建一个公有变量,然后把这个Prefab拖到这个变量上,然后才可以用它来实例化对象(我感到一种蛋蛋的忧伤,能不拖吗)通过Resources这个类的静态方法可以将Prefab对象动态加载进来,创建GameObjectGameObject之间的通讯,在游戏中,我们往往需要知道其他对象的一些信息,所以我们经常需要动态地查询另外一个GameObject1. 查找父节点 transform.parent2. 查找子节点 transform.Find("name");&&transform.Find("Arm/Hand/Finger"); 没有找到会返回null,名字如果包含"/"字符将像路径一样穿越层次3. 查找场景中的其他GameObject&GameObject.Find 从Scene下开始查找,根据GameObject的名字进行查找,允许使用"/"穿越层次查找,GameObject.FindWithTag根据Tag查找一个GameObject,GameObject.FindGameObjectsWithTag 根据Tag批量查找GameObjectGameObject的name和Tag可以直接设置,但Tag需要在标签管理器先定义一个Tag,这个Tag才可用,你不能将一个未定义的Tag赋给GameObject的Tag变量最后还有一种搓搓的通讯方法,通过Message来调用其他GameObject,默认是垃圾短信群发,也可以将一个Object穿进去,然后调它的方法methodName为方法名,value为方法的参数,options表示是否必须有对象接收该消息(如果是,且没有对象接受,u3d报错)//调用本级别所有的GameObject上所有脚本的methodName方法void SendMessage(string methodName, object value = null, SendMessageOptions options = SendMessageOptions.RequireReceiver);//朝本级别和上级父节点发送调用命令void SendMessageUpwards(...)//目标是本级别和全部子节点...void BroadcastMessage(...)调用Object的Destroy方法可以销毁一个GameObject,组件,或者资源。这是一个静态方法,函数的原型为 static void Destroy(Object obj, float t = 0.0F );可以通过将this传入,销毁自己。GameObject的成员变量很多
随笔分类(268)
随笔档案(311)
积分与排名UnityC#编程中GameObject和Component的常用操作
1.GameObject
tag常用于区分游戏中不同类型的对象(例如区分玩家和NPC)
name:游戏物体的名称
SetActive:使游戏物体处于活跃/不活跃状态
例:other.gameObject.SetActive(flase);
如果这行代码放到触发的代码中,就会起到一个让所有触发的物体都从世界上消失的作用
如何查找GameObject
①直接拖拽赋值----public一个gameObject类型变量,然后把其它游戏对象拖进去
②查找(比较耗时)
GameObject.Find----直接查找名字,需要保证名字是唯一的,返回找到的这个GameObject
GameObject.FindGameObjectsWithTag-----通过标签查找某个游戏物体,并以数组形式返回所有找到的结果
GameObject.FindWithTag------通过标签查找某个游戏物体,并返回找到的GameObject
<ponent的常用操作
&#9312;得到Transform组件,并进行操作分三步:
1)首先得到游戏物体
GameObject
//利用前面所说的方法得到
2)然后得到Transform组件
Transform tran=go.&&
//利用“.”得到游戏物体go中的transform组件并定义一个Transform类型变量来接收
3)最后对组件进行操作
&#9313;得到Component的方式
1)找到一个符合条件的之后就返回找到的这个并且不再寻找
GetComponent//
GetComponentInChildren
GetComponentInParent
2)会找出所有的符合条件的,并做成一个数组返回
GetComponents
GetComponentsInChildren
GetComponentsInParent
注:可以在一个GamObject上调用,例如go.GetCom...也可以在一个脚本对象(组件对象)上直接调用transform.GetCom...
查找的范围都是这个GameObject上挂载的所有脚本(组件)
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。主题 : 关于gameObject.isStatic属性的一些问题
级别: 侠客
可可豆: 1682 CB
威望: 1682 点
在线时间: 357(时)
发自: Web Page
来源于&&分类
关于gameObject.isStatic属性的一些问题&&&
关于gameObject.isStatic属性的一些问题:为了优化效率我使用了gameObject.isStatic(当静止不动的物体设置这个属性的时候会提高效率),当使用界面勾选Static选项的时候激活所有子物体都选择静态属性.注意:当我用界面勾选Static属性的时候draw calls会减少,效率会得到提高.但是!!当我用脚本控制这个属性的时候isStatic也勾选了,可是draw calls 并不会减少,并且效率和原先的一样没有得到优化.以下我用脚本设置gameObject.isStatic的代码,很简单的几句没有什么特别的地方:function Awake (){//将该物体下的所有子 物体都设置成静态属性,代码没有错,所有子物体都设置成了静态&&&&var objs : GameObject[];&&&&objs = gameObject.FindObjectsOfType (GameObject);&&&&for (var obj : GameObject in objs )&&&&{&&&&&&&&obj.isStatic =&&&&}}请问各位有没遇到这个问题,并且需要如何修改??诚心求教各位大佬如何使用这个属性.
级别: 天使
发帖: 152466
可可豆: 2255457 CB
威望: 2255457 点
在线时间: 1741(时)
发自: Web Page
静态物体会自动结合为一个网格物体等等.我只用过手动指定...
我的博客:QQ:3122828,微博:@unity3
级别: 侠客
可可豆: 1682 CB
威望: 1682 点
在线时间: 357(时)
发自: Web Page
有些问题不仅仅勾选可以解决的,比如说场景里面有些东西要玩家来编辑,这个时候他能移动该物件,但是当他移动完成后这个物件就要设置成静态的状态,这样对整体的游戏效率都有很大的好处,所以有没方法实现脚本动态社子这个属性
级别: 天使
发帖: 152466
可可豆: 2255457 CB
威望: 2255457 点
在线时间: 1741(时)
发自: Web Page
这个没深入研究过.等高人.
我的博客:QQ:3122828,微博:@unity3
级别: 骑士
可可豆: 2685 CB
威望: 2685 点
在线时间: 303(时)
发自: Web Page
所谓静态就是静止的,你如果要改变它位置,就不是静态了,静态物体在脚本加载的时候就开始渲染,不随着update 每侦更新,你如果要移动物体,就必然要重新刷新,就是动态了
Unity iphone
关注本帖(如果有新回复会站内信通知您)
发帖、回帖都会得到可观的积分奖励。
按"Ctrl+Enter"直接提交
关注CocoaChina
关注微信 每日推荐
扫一扫 关注CVP公众号
扫一扫 浏览移动版当前位置: >
GameObject 永远面对镜头效果
时间: 08:46 来源:Unity之家 作者:unity.jb51.net 浏览:
先展示下效果图脚本绑定到 Cube 中 :下面直接贴代码:using&UnityEusing&System.Cpublic&class&CameraFacingBillboard&:&MonoBehaviour{public&Camera&cameraToLookAt;void&Start(){cameraToLookAt&=&Camera.}void&Update(){Vector3&v&=&cameraToLookAt.transform.position&-&transform.v.x&=&v.z&=&0.0f;transform.LookAt(cameraToLookAt.transform.position&-&v);}}
(责任编辑:脚印)
免责声明:Unity之家部分内容来源于互联网,如有侵权,请联系我们,本站将立即进行处理。
猜你也喜欢看这些 ??????
其他类型的Unity入门 ??????}

我要回帖

更多关于 unity worldtoobject 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信