Unity3D】【Unity基础】Transform类包括哪些派生类?

2020-12-01 14:34发布

10条回答
水默
2楼 · 2020-12-01 15:11

MatrixTransform:创建一个用于操纵二维屏幕中的对象或者坐标系统的专用转换矩阵

RotateTransform:围绕二维(x,y)坐标系统中一个指定点顺时针方向旋转对象

ScaleTransform:调整对象在二维(x,y)坐标系统中的尺寸

SkewTransform:在二维(x,y)坐标系统中倾斜对象

TransformGroup:代表由其他Transform对象组成的组合Transform


@CcCc
3楼 · 2020-12-01 15:44

MatrixTransform:创建一个用于操纵二维屏幕中的对象或者坐标系统的专用转换矩阵

RotateTransform:围绕二维(x,y)坐标系统中一个指定点顺时针方向旋转对象

ScaleTransform:调整对象在二维(x,y)坐标系统中的尺寸

SkewTransform:在二维(x,y)坐标系统中倾斜对象

TransformGroup:代表由其他Transform对象组成的组合Transform



是开心果呀 - 热爱生活
4楼 · 2020-12-01 16:02

单一继承、多重继承、基类

是你的小甜心呀
5楼 · 2020-12-01 16:59

基类的私有成员在派生类中是不能直接访问的,但是基类一般会提供返回这些数据成员的方法,通过这些方法来获取基类私有成员的值
比如基类中有一个成员变量name
一般通过getName()方法就可以访问到


kitidog2016
6楼 · 2020-12-01 17:03

定义实现二维平面中的转换的功能。 转换包括旋转 (RotateTransform)、缩放 (ScaleTransform)、倾斜 (SkewTransform) 和平移 (TranslateTransform)。 此类层次结构不同于 Matrix 结构,因为它是一个类,而且支持动画和枚举语义。

C#

[System.ComponentModel.TypeConverter(typeof(System.Windows.Media.TransformConverter))]
[System.Windows.Localizability(System.Windows.LocalizationCategory.None, Readability=System.Windows.Readability.Unreadable)]public abstract class Transform : System.Windows.Media.GeneralTransform
  • 继承

  • Object

    DispatcherObject

    DependencyObject

    Freezable

    Animatable

    GeneralTransform

    Transform

  • 派生

  • System.Windows.Media.MatrixTransform

    System.Windows.Media.RotateTransform

    System.Windows.Media.ScaleTransform

    System.Windows.Media.SkewTransform

    System.Windows.Media.TransformGroup

    System.Windows.Media.TranslateTransform

  • 属性

  • TypeConverterAttribute LocalizabilityAttribute

注解

使用 MatrixTransform 类可创建不由 RotateTransform 、 ScaleTransform 、 SkewTransform 和类提供的自定义转换 TranslateTransform 。

二维X y 平面使用3x3 矩阵进行变换。 您可以将仿射转换矩阵相乘,以形成线性转换,如旋转和倾斜 (切变) ,后面是平移。

仿射转换矩阵的最终列等于 (0,0,1) ;因此,您只需指定前两列中的成员。

Windows Presentation Foundation (WPF) Matrix 具有以下结构:

注解



M11M120
M21M220
OffsetXOffsetY1

最后一行中的成员 OffsetX OffsetY 表示转换值。

方法和属性通常将变换矩阵指定为只有六个成员的矢量;如下所示:

(M11, M12, M21, M22, OffsetX, OffsetY)

属性

属性
CanFreeze

获取一个值,该值指示是否可将对象变为不可修改。

(继承自 Freezable)
DependencyObjectType

获取对此实例的 CLR 类型进行包装的 DependencyObjectType。

(继承自 DependencyObject)
Dispatcher

获取与此 Dispatcher 关联的 DispatcherObject。

(继承自 DispatcherObject)
HasAnimatedProperties

获取一个值,该值指示一个或多个 AnimationClock 对象是否与此对象的任何依赖项属性相关联。

(继承自 Animatable)
Identity

获取一个恒等变换。

Inverse

获取此变换的逆变换(如果存在)。

IsFrozen

获取一个值,该值指示对象当前是否可修改。

(继承自 Freezable)
IsSealed

获取一个值,该值指示此实例当前是否为密封的(只读)。

(继承自 DependencyObject)
Value

以 Matrix 对象的形式获取当前变换。

方法

方法
ApplyAnimationClock(DependencyProperty, AnimationClock)

将 AnimationClock 应用到指定的 DependencyProperty。 如果该属性已进行动画处理,则使用 SnapshotAndReplace 切换行为。

(继承自 Animatable)
ApplyAnimationClock(DependencyProperty, AnimationClock, HandoffBehavior)

将 AnimationClock 应用到指定的 DependencyProperty。 如果该属性已进行动画处理,则使用指定的 HandoffBehavior。

(继承自 Animatable)
BeginAnimation(DependencyProperty, AnimationTimeline)

将动画应用于指定 DependencyProperty。 动画会在呈现下一帧时启动。 如果指定属性已进行动画处理,则使用 SnapshotAndReplace 切换行为。

(继承自 Animatable)
BeginAnimation(DependencyProperty, AnimationTimeline, HandoffBehavior)

将动画应用于指定 DependencyProperty。 动画会在呈现下一帧时启动。 如果指定的属性已进行动画处理,则使用指定的 HandoffBehavior。

(继承自 Animatable)
CheckAccess()

确定调用线程是否可以访问此 DispatcherObject。

(继承自 DispatcherObject)
ClearValue(DependencyProperty)

清除属性的本地值。 要清除的属性由 DependencyProperty 标识符指定。

(继承自 DependencyObject)
ClearValue(DependencyPropertyKey)

清除只读属性的本地值。 要清除的属性由 DependencyPropertyKey 指定。

(继承自 DependencyObject)
Clone()

通过深层复制其值创建此 Transform 的可修改副本。

CloneCore(Freezable)

使用基(未经过动画处理的)属性值使该实例成为指定 Freezable 的克隆(深层复制)。

(继承自 Freezable)
CloneCurrentValue()

通过制作此 Transform 对象的值的深层副本来创建此对象的可修改复本。 此方法不复制资源引用、数据绑定或动画,但复制其当前值。

CloneCurrentValueCore(Freezable)

使用当前属性值使该实例成为指定 Freezable 的可修改克隆(深层复制)。

(继承自 Freezable)
CoerceValue(DependencyProperty)

对指定依赖属性的值进行强制。 通过对调用方 DependencyObject 上存在的依赖属性的属性元数据中所指定的任何 CoerceValueCallback 函数进行调用来完成此操作。

(继承自 DependencyObject)
CreateInstance()

初始化 Freezable 类的新实例。

(继承自 Freezable)
CreateInstanceCore()

在派生类中实现时,创建 Freezable 派生类的新实例。

(继承自 Freezable)
Equals(Object)

确定提供的 DependencyObject 是否等效于当前 DependencyObject。

(继承自 DependencyObject)
Freeze()

使当前对象不可修改,并且将其 IsFrozen 属性设置为 true。

(继承自 Freezable)
FreezeCore(Boolean)

使此 Animatable 对象成为不可修改的对象,或确定是否可使其成为不可修改的对象。

(继承自 Animatable)
GetAnimationBaseValue(DependencyProperty)

返回指定的 DependencyProperty 的未经过动画处理的值。

(继承自 Animatable)
GetAsFrozen()

使用基(未经过动画处理的)属性值创建 Freezable 的冻结副本。 由于副本已冻结,因此将通过引用复制任何冻结的子对象。

(继承自 Freezable)
GetAsFrozenCore(Freezable)

让该实例成为指定的 Freezable 的冻结克隆,前者使用基(非动画的)属性值。

(继承自 Freezable)
GetCurrentValueAsFrozen()

使用当前属性值创建 Freezable 的冻结副本。 由于副本已冻结,因此将通过引用复制任何冻结的子对象。

(继承自 Freezable)
GetCurrentValueAsFrozenCore(Freezable)

使当前实例成为指定 Freezable 的冻结克隆。 如果对象具有动画依赖属性,则复制其当前的动画值。

(继承自 Freezable)
GetHashCode()

获取此 DependencyObject 的哈希代码。

(继承自 DependencyObject)
GetLocalValueEnumerator()

创建一个专用的枚举数,用于确定哪些依赖项属性在此 DependencyObject 上具有以本地方式设置的值。

(继承自 DependencyObject)
GetType()

获取当前实例的 Type。

(继承自 Object)
GetValue(DependencyProperty)

对 DependencyObject 的此实例返回依赖属性的当前有效值。

(继承自 DependencyObject)
InvalidateProperty(DependencyProperty)

重新评估指定依赖属性的有效值。

(继承自 DependencyObject)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
OnChanged()

修改当前 Freezable 对象时调用。

(继承自 Freezable)
OnFreezablePropertyChanged(DependencyObject, DependencyObject)

确保为刚刚设置的 DependencyObjectType 数据成员建立适当的上下文指针。

(继承自 Freezable)
OnFreezablePropertyChanged(DependencyObject, DependencyObject, DependencyProperty)

此成员支持 Windows Presentation Foundation (WPF) 基础结构,但不能在代码中直接使用。

(继承自 Freezable)
OnPropertyChanged(DependencyPropertyChangedEventArgs)

重写 OnPropertyChanged(DependencyPropertyChangedEventArgs) 的 DependencyObject 实现,以同时调用任何响应类型 Freezable 不断变化的依赖属性的 Changed 处理程序。

(继承自 Freezable)
Parse(String)

通过变换矩阵的指定字符串表示形式创建一个新的 Transform。

ReadLocalValue(DependencyProperty)

如果存在,则返回依赖属性的本地值。

(继承自 DependencyObject)
ReadPreamble()

确保正在从有效的线程访问 Freezable。 Freezable 的继承者必须在任何 API 一开始读取不属于依赖项对象的数据成员时调用此方法。

(继承自 Freezable)
SetCurrentValue(DependencyProperty, Object)

设置依赖属性的值而不更改其值源。

(继承自 DependencyObject)
SetValue(DependencyProperty, Object)

设置依赖属性的本地值,该值由其依赖属性标识符指定。

(继承自 DependencyObject)
SetValue(DependencyPropertyKey, Object)

设置一个只读依赖属性的本地值,该值由依赖属性的 DependencyPropertyKey 标识符指定。

(继承自 DependencyObject)
ShouldSerializeProperty(DependencyProperty)

返回一个值,该值指示序列化进程是否应序列化所提供的依赖属性的值。

(继承自 DependencyObject)
ToString()

创建此 GeneralTransform 的字符串表示形式。

(继承自 GeneralTransform)
ToString(IFormatProvider)

基于传递的 IFormatProvider 参数创建此实例的字符串表示形式。

(继承自 GeneralTransform)
Transform(Point)

变换指定的点并返回结果。

(继承自 GeneralTransform)
TransformBounds(Rect)

变换指定的边界框,并返回一个正好能容纳它的轴对齐的边界框。

TryTransform(Point, Point)

尝试变换指定的点,并返回指示变换是否成功的值。

VerifyAccess()

强制调用线程具有此 DispatcherObject 的访问权限。

(继承自 DispatcherObject)
WritePostscript()

引发 Freezable 的 Changed 事件并调用其 OnChanged() 方法。 从 Freezable 派生的类应在修改的类成员不存储为依赖属性的任何 API 的末尾调用此方法。

(继承自 Freezable)
WritePreamble()

验证 Freezable 是否未被冻结,并且是否正在从有效的线程上下文中访问它。 Freezable 的继承项应当在任何 API 一开始写入不属于依赖项属性的数据成员时调用此方法。

(继承自 Freezable)

事件

事件
Changed

在修改 Freezable 或其包含的对象时发生。

(继承自 Freezable)


Ross
7楼 · 2020-12-01 17:03

MatrixTransform,RotateTransform,ScaleTransform,SkewTransform,TransformGroup,RectTransform

樱田妮妮NiNi
8楼 · 2020-12-01 17:49

MatrixTransform:创建一个用于操纵二维屏幕中的对象或者坐标系统的专用转换矩阵

RotateTransform:围绕二维(x,y)坐标系统中一个指定点顺时针方向旋转对象

ScaleTransform:调整对象在二维(x,y)坐标系统中的尺寸

SkewTransform:在二维(x,y)坐标系统中倾斜对象

TransformGroup:代表由其他Transform对象组成的组合Transform



浅浅77
9楼 · 2020-12-02 10:03

基类的私有成员在派生类中是不能直接访问的,但是基类一般会提供返回这些数据成员的方法,通过这些方法来获取基类私有成员的值
比如基类中有一个成员变量name
一般通过getName()方法就可以访问到

相关问题推荐

  • 回答 17

    还是要学好编程基础呀如果你觉得编程很苦难 不一定要从c#开始学  学学js flash as等等  有个梯度就好多了如果要用好unity  不会编程那是不行的  学习的过程中都有个头疼的过程  记住  头越痛  代表你要接受的东西越多  坚持 你的大脑在和知识兼容中:D...

  • unity如何自学Unity3D 2022-01-06 15:24
    回答 18

    可以先思考学习的目的,是什么因素在驱动你。是完成一款作品?进入某个行业?还是探究某类问题?否则和技术相关的知识浩如烟海,很容易迷失在细枝末节上。而要找到动力源头。个人的经验,就是关注一些和自己同方向,同类型的创作者。他们输出的作品会激励你,...

  • 回答 23

    可以让模型师直接作出这样的形状,如果用纯Unity制作,就要用基本游戏对象拼接了,包括楼梯,城堡,都可以拼接出来。正常情况不会这样做,因为不够精美,都是建模师来实现,毕竟Unity不属于专业的建模软件,侧重于实现功能。...

  • 回答 2

    Shader Unlit/Test{Properties{_MainTex(MainTex,2D)=white{}_MainColor(MainColor,COLOR)=(1,1,1,1)_AddTex(AddTex,2D)=white{}_Maxset(Max,Range(0.1,1.0))=0.1}SubShader{Tags{RenderType=Transparent Queue=Tran...

  • 回答 4

    文章主要为大家详细介绍了Unity Shader实现水波纹效果,文中示例代码介绍的非常详细具体代码实现如下:Shader Custom/shuibowen{ Properties{ _MainTex(Base (RGB),2D)=white{} _distanceFactor(Distancefactor,float)=1 _timeFactor(time factor,float)=...

  • 回答 7

    策划的最基本的原则就是:改进缺点,做别人没有做到的。无论游戏策划还是其它策划都是一样!    游戏策划的第二个原则:放飞思想。也许你认为我是说策划们应该充满想象力,能想一些匪夷所思的东西!对不起。不是这意思!一个合格的策划不是为了发泄自己的...

  • 回答 7
    已采纳

    可以多玩一些其它的游戏,看一些科幻电影等,寻找灵感。

  • 回答 3
    已采纳

    游戏架构与设计不纯粹是一门科学,它不需要提出假设或探究真理,也不被逻辑或正规方法的严格标准所束缚。游戏的目的就是通过玩来获得娱乐,因此游戏设计即需要艺术家一样的创造力,也需要工程师一样的精心规划。游戏设计是一门手艺,就像好莱坞的电影摄像或服...

  • 回答 10

    Transform类是Unity脚本编辑的一个基础且重要的类一、成员变量position:在世界空间坐标transform的位置。localPosition:相对于父级的变换的位置。如果该变换没有父级,那么等同于Transform.position。eulerAngles:世界坐标系中的旋转(欧拉角)。localEule...

  • 回答 9

    public void Translate (translation : Vector3, relativeTo : Space = Space.Self) : void把物体向translation方向移动,距离为translation.magnitude。 relativeTo表示这个移动的参考坐标系。public void Translate (x : float, y : float, z......

  • 回答 4

    Text作为UGUI最基础的控件以及最常用的控件,它在项目中的应用绝对可以算是最多的,任何一个UI界面可以说都离不开它,它的基本属性如下:一、rect transform组件:rect transform(矩形变换):理解为专门用于UI的transform组件,是UGUI所有控件的标准位置变...

没有解决我的问题,去提问