Unity 访问组件(三)
来源:互联网 发布:百姓网发帖软件 编辑:程序博客网 时间:2024/06/07 15:09
添加组件的方法
gameObejct.AddComponent<>(); //动态添加组件 <脚本名称>
[RequirtComponenr(typeof())] //添加组件(扩展编辑器)
方法与属性的执行效率
比较组件:
Component.tag == "XXX";
Component.CompareTag("XXX");
注: 继承自GameObject 的游戏对象和Component类的组件都有一个tag 和 CompareTag属性和方法,,,执行效率ComparTag相对更高;
Tags 标签管理类
游戏中可以通过标签来分别主角,敌人和场景,,比如射击游戏,我们需要判断子弹打到了谁,而对方有什么样的动作,,,此时我们如果用标签管理类就会方便很多
例如:
public class Tags
{
pubilc const string player = "Player";
pubilc const string mainCamera= "MainCamera";
}
此类不需要挂载到物体上,所有没有必要继承MonoBehavior ,需要被外部访问所以用 public 修饰符,用count 代替static 是防止在代码中更改标签值,
使用时直接调用,
if(this.gameObject == Tags.player) { ... } 就可以了
游戏对象的生成和销毁
GameObject.CreatePrimitive 创建基本物体
C# => static GameObject CreatePrimitive(PrimitiveType type);
PrimitiveType 是枚举类型,使用时只需"."出想创建的基础物体即可,,,
Object.Instantiate 克隆、实例,创建一个游戏物体,
C# => static Object Instantiate(Object original, Vector3 position, Quaternion rotation);
C# => static Object Instantiate(Object original);
注:创建每个实例都比较消耗系统的内存,所以我们用完的时候,一定及时销毁
删除场景中的一个物体或组件
Object.Destroy 销毁
//Destroy()方法继承自Object ,凡是基础Object的组件物体资源都可被此方法动态删除
Object.DestroyImmediate 立即销毁
Object.DontDestroyOnLoad 加载时不销毁
//DontDestroyOnLoad ()方法用于当前场景到新场景中切换,保留被加载的物体,身上所有的组件及对应的属性信息都不会改变
MonoBehaviour.OnDestroy 当销毁 //此方法和以上三个不一样,该方法属于生命周期函数
注:销毁父级物体,自己物体自动销毁
面试易问问题:GameObject.Find()和Transform.Find()的区别
GameObject可以根据游戏物体的名称查找所有层级的游戏物体,不支持查找被禁用(未激活)物体
Transform只能查找脚本所依附的游戏对象的子物体中,并且只能查一级子物体,如查找多层需要完整路径,支持查找被禁用物体
阅读全文
0 0
- Unity 访问组件(三)
- Unity 访问组件(一)
- Unity学习(五):Unity中的射线和组件访问
- Unity 访问2d组件 Sprite Renderer
- Unity自定义UI组件(三)饼图篇
- Unity自定义UI组件(三)饼图篇
- Unity+Behavior Tree行为树 Behavior Designer 行为树组件(三)
- Unity (三)
- unity学习(三)
- (三)unity 3D 学习-按名称、标签访问其它物体
- unity开发之三:www访问数据库(数据存储和数据获取)
- Unity 组件
- 组件生命周期(三)
- 组件生命周期(三)
- Android组件(三)
- 组件生命周期(三)
- 自定义组件(三)
- Untiy 访问组件(二)
- 两张表关联如何实现同时插入数据 sql具体语句
- leetcode--Flatten Binary Tree to Linked List
- iOS 监听锁屏/解锁事件
- maven笔记(一)
- Learn C++第一章:基本概念(什么是c++?)
- Unity 访问组件(三)
- json格式字符串用jquery.parseJSON()出现的问题 Uncaught SyntaxError: Unexpected token ' Uncaught SyntaxError: Une
- 如何将搜索框上次的搜索条件固定
- 求一个数的二进制表示方法(1305 P102)
- Attention在语音识别中的应用(2)
- GotFocus\SetFocus\LostFocus区别
- Unity AndroidStudio和Unity交互
- [转载]Android之Notification的多种用法
- C_栈和队列(ADT)-队列的非循环(带头指针)顺序表示和实现