位置: 编程技术 - 正文

Unity的Attribute(特性)还算多吧

编辑:rootadmin
转载请注明出处:



推荐整理分享Unity的Attribute(特性)还算多吧,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

属性 (Attribute)

使用 Unity 的C#语言 ,利用属性(Attribute)来类定义和变量定义或区分其他的变量,您可以设置一种特殊行为。* 1

例如,您添加[SerializeField]属性变量,私有变量标识序列化。

[SerializeField]

int 计数;

序列化您'的值是存储到场景和预制体。因为值存储在meta元数据中,在Inspector检查器中设置的值。

你还可以强制指定的组件,对象要被附加组件,您将添加[RequireComponent] * 2 * 3 。

[RequireComponent(typeof(Rigidbody))]

public classAttributeSample : MonoBehaviour {

}

你可以使用属性时,设置特殊的变量命名约定以外的其他行为。unity使用属性,设置特约编辑和方法的行为。

规则属性

属性放置在[below. * * *]的窗体变量和类定义之前。如果你想要设置多个属性,以逗号分隔 [* * * . * * *]的写入操作。

例如,如果您想要设置的 SerializeField 和范围,如描述属性。

[SerializeField, Range(0, 5)]

int count;

属性适用于立即定义的所有变量。例如,如果在一个声明中定义多个变量

[SerializeField, Range(0,5)]

int count3, count4;

以及适合数组,是适用于所有的变量,使其包含。

[SerializeField, Range(0,5)]

int[] counts;

统一标准属性

要扩展Inspector检查器属性

扩展的Inspector检查器行为选择字段。

•SerializeField

private或protected值的序列化。

如果您想要在场景视图中进行编辑,它非常有用。

[SerializeField]

int count;

•TooltipAttribute

如果鼠标光标是在字段上,显示的说明文本。

[SerializeField,TooltipAttribute("説明文")]

int count5;

•SpaceAttribute

设置字段和字段之间的空间。

[SerializeField,Space()]

intcount6;

•HeaderAttribute

设置标题,就是字段的头部。需要注意,因为标题给予所有项目和将 HeaderAttribute 添加到列表中

[SerializeField,HeaderAttribute ("Title")]

int count7;

•MultilineAttribute

设置多行输入的文本字段。

[SerializeField, MultilineAttribute(2)]

string message1;

•TextAreaAttribute

设置多行输入的文本字段。您可以设置的最大值和最小值的行数。

[SerializeField,TextAreaAttribute(2, 5)]

string message2;

•HideInInspector

这种public序列化字段从Inspector检查器隐藏。如果隐藏的参数、扩展的编辑器中内置的参数和引用关系。

请注意不能从检查器编辑,HideInInspector 用于构建unity场景隐藏一个序列化的值,当声明一个字段变量初始化也将忽略。

使用NonSerializable的序列化和HideInInspector。

[HideInInspector]

public int count8;

•NonSerializable

序列化并不妨碍您将从检查器中消失。

[System.NonSerialized]

public int count9;

•FormerlySerializedAs

当您更改该变量的名称,保持信息的修改。

unity保持信息字段字段名称中,字段名称被更改和销毁值。当您可以指定FormerlySerializedAs此信息将被带到目标变量的名称。

public float first;

Unity的Attribute(特性)还算多吧

首先,所有的变量first。我试着改变这第二个变量中。并添加 FormerlySerializedAs 属性,原" first "。

[FormerlySerializedAs("first")]

public float second;

即使您更改中的变量名称的值first在此变量的名称second之后,将保留。如果你在其他场景中使用可迁移要删除 FormerlySerializedAs 和各种的麻烦,请注意。

与组件的行为相关联的属性

•RequireComponentAttribute

添加组件的行为附加到对象。例如,刚体等......

[RequireComponent(typeof(Rigidbody))]

public classAttributeSample : MonoBehaviour {

}

•DisallowMultipleComponent

不能将几个组件添加到同一个对象(就是不能重复)。

[DisallowMultipleComponent]

public classAttributeSample : MonoBehaviour {

}

•ContextMenuAttribute

我想要从组件的上下文菜单(单击右键)调用方法。例如,如果您在运行时做不被动设置很有用。

[ContextMenu("Init")]

void Init(){

}

影响游戏的行为的属性

•RPC

在执行 RPC 时,它使用。用于在 NetworkView 中的光子与沟通。此属性是跨网络调用方法。

[RPC]

void Damage(){

}

•ImageEffectTransformsToLDR

似乎转换HDR和 LDR 。如何使用未知。

•ImageEffectOpaque

使 OnRenderImage 透明呈现。

[ImageEffectOpaque]

void OnRenderImage(RenderTexture source, RenderTexture destination){

}

•MonoPInvokeCallbackAttribute

C#(托管代码) 中注册方法可以从c + +(非托管代码) 调用。

•DLLImport

C + +(非托管代码) 的方法可从c#调用。

[DllImport("DLLName")]

private static extern void MethodName();

用编辑器的行为相关联的属性

是可以影响的场景从编辑器的顶部的属性。

•AddComponentMenu

设置路径,当指定 AddComponent 按钮和菜单栏构件。如果你不做你的Script /Namespace 和组件的名称。

[AddComponentMenu("Sample/TestCode")]

public class AttributeSample: MonoBehaviour{

}

•ExecuteInEditMode

状态不玩游戏等组件事件更新并开始工作。用来验证是否要工作在运行时的行为。

[ExecuteInEditMode]

public classAttributeSample : MonoBehaviour {}

ExecuteInEditMode操作热点像代码更改为序列化的形式可以是值是序列化→→汇编和注射,不能破坏价值和可能。正因为如此,注意力是需要,因为需要发挥出来的场景将取决于静态代码或初始化开始等......

例如是前 3 名,代码更改和运行编译下面的代码的代码更改,并打印 0。

static int sCount = 0;

void Start(){

sCount = 3;

}

void Update(){

Debug.Log("export:" + sCount);

}

•SelectionBaseAttribute

选择您选择在场景视图中使用此属性的组件。

[SelectionBase]

public class AttributeSample :MonoBehaviour {}

例如授予的授予对父对象的渲染器模型的SelectionBaseAttribute 选定在场景视图的模型时,选择场景视图组件所选的父对象上,当你选择时。

是到游戏对象的 SelectionBase对象,如果不是根据行为给予的批。格兰特获取未授予一个球体,但游戏物体的对象。



unity3d如何实现角色站到台阶跟着上下左右 在实现角色站到台阶跟随物体移动的时候,上下运动因为有重力和刚体的碰撞,所以角色可以勉强跟着物体移动,但是会发现角色在下落的时候会跟不

unity3d如何实现角色从台阶下面可以跳上去,上面却没法落下来 Vector2pointA=groundCheck.position;Vector2pointB=groundCheck.position+newVector3(0,-0.1f,0);boolbanded=Physics2D.Linecast(pointA,pointB,1LayerMask.NameToLayer(Band));boolignore=!banded;Physics2D.Ignor

UnityCode常用数据结构大起底 匹夫细说Unity3D(四)——常用数据结构大起底1.几种常见的数据结构这里主要总结下小匹夫在工作中常碰到的几种数据结构:Array,ArrayList,ListT,LinkedListT

标签: Unity的Attribute(特性)还算多吧

本文链接地址:https://www.jiuchutong.com/biancheng/378837.html 转载请保留说明!

上一篇:Unity3D基础--常用的GUI控件(unity3d操作)

下一篇:unity3d如何实现角色站到台阶跟着上下左右(unity3d操作)

  • 小规模缴纳增值税
  • 小规模税费如何做分录
  • 劳务合同印花税税目
  • 什么是库存现金的盘亏
  • 工资的计提与结转怎么算
  • 专票小数点没打印齐能用吗
  • 红字发票需要认证吗之前的发票还有用吗
  • 个税受雇日期以哪个日期
  • 产品税率下调企业是否要到税务部门备案
  • 企业辅助生产车间
  • 经营性租赁购入会计分录
  • 预收账款与预付账款均属于负债
  • 幼儿园组织的活动幼儿一定要参加吗
  • 房产税计税依据房产原值怎么算
  • 借款利息不能抵扣进项税
  • 房地产企业按照功能可分为
  • 子公司代母公司支付费用
  • 记账凭证的分类和基本内容
  • 小规模纳税人怎么算税
  • 固定资产报多好还是报少好
  • 公司产品因质量问题买家追究
  • 在edge浏览器中打开农行K宝
  • 收到客户赔偿款计入什么科目
  • 旅游开发企业会计账务处理
  • 电脑主板bios设置
  • go进程管理
  • 未开票收入以后必须开票吗
  • Thinkphp事务操作实例(推荐)
  • php方法重载
  • 结存材料实际成本分录
  • 其他收益会计科目怎么写
  • 增值税税控系统技术维护费怎么做账
  • this.emit('input')
  • 企业的职工教育经费计入什么费用
  • Vue3通透教程【十二】TS类型声明优势
  • php怎么上传图片并保存到数据库
  • 已入账的发票跨年退回税务
  • uniapp微信小程序兼容
  • 勘察设计费是否含税
  • 应付职工薪酬如何记账
  • 试运行收入会计分录
  • 金税盘税控盘和税务Ukey有什么区别
  • 出租车计入什么费
  • 公司全额承担个税会计分录
  • 回购股票并注销影响所有者权益吗
  • openglskia是什么意思
  • 银行手续费需要开发票吗
  • 社保工伤保险可以退吗
  • 工程施工的间接费用如何归集分配
  • 烟叶税计算时价格怎么算
  • 会计法中单位负责人均指法定代表人
  • 员工垫付的费用没有发票,放在工资里可以吗
  • 一般纳税人证明在哪里开具
  • 出口退税税款账务处理
  • 营改增企业是什么意思
  • 缴纳房产税如何做账务处理
  • 公司新装宽带怎么安装
  • 辞退补偿金入什么科目
  • 营业外支出的具体内容
  • 贷内部往来
  • 金蝶凭证做错了已经入账怎么更正
  • window部署服务
  • mac自动操作怎么停止
  • IPad怎么连接电视机看看影视
  • vnc远程桌面linux
  • mac睡眠设置方法
  • cp命令不要覆盖提示
  • sbsetup.exe - sbsetup是什么进程 有什么用
  • win7360安全卫士有必要装吗
  • win10家庭版专业版教育版
  • mysql服务器的安装与配置
  • angular中的$scope
  • 搭建入门
  • 下列关于eval()函数的说法正确的是
  • 工具类的作用
  • Javascript字符串出现次数
  • 国家税务总局全国增值税查询
  • 济南税务局电话是多少
  • 苏州税务系统
  • 城市维护建设税法自2021年10月1日起施行
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设