Animation,Sound&Effects
Sprite Renderer
- 用来在Scene中渲染显示出图像
2.若Sprite Renderer组件未被激活,或则其中的Sprite属性为None,则在Scene中都不会渲染显示出图像来。
3.组件属性
-
Spirit
Sprite游戏对象就是通过Sprite Renderer控件中的Sprite属性选择一个Sprite对象来渲染显示在Scene视图中的。
效果如下图所示: -
Color
-
默认值为#FFFFFFFF,即Spirit显示为原色。可以通过设置Color属性改变Spirit的整体颜色。
-
Flip
有X和Y两个勾选项,可以通过勾选Flip属性对sprite沿X和Y方向进行翻转,这样的反转方式只会影响Sprite本身,不会翻转其碰撞体和其子对象。而通过Transform控件的Rotation属性的X和Y轴实现翻转效果的方式,就会同时翻转其碰撞体和其子物体。
例如勾选Y
- Material
默认为Sprites-Default材质,此时在Scene中Sprite不会受到光源系统的影响。可以通过 Material属性 使用其他的材质来达到不同的渲染效果,并能受到光源系统的影响。
- Sorting Layer
通过该属性,设置多个分类图层,其中高图层的Spirite会被先渲染,然后低图层的Spirite被后渲染,并能覆盖高图层的Spirite,而显示在其上方。
下拉Sorting Layer属性,选择 Add Sorting Layer 添加分类图层。
添加两个分类图层,命名为high和low,注意high在low的上方,high为高图层,low为低图层。
此时再下拉Sorting Layer属性,出现了刚才添加的两个分类图层。把荷花设置为high图层,纸飞机设置为low图层。就可以看到低图层为纸飞机,覆盖了先渲染的高图层荷花。
- Order in Layer
同一个图层的多个Sprite可以通过` Order in Layer属性,设置int类型的数字进行渲染顺序的排序。其中数字越小的Sprite会被先渲染,数字越大的Sprite被后渲染,并能覆盖数字越小的Sprite而显示在其上方(数字大的在上面)。
(1) 如果在Sorting Layer属性中,荷花和纸飞机属于同一图层,在Order In Layer属性中,把荷花设置为0,纸飞机设置为1,那么纸飞机显示在荷花上边。
(2) 如果荷花和纸飞机在Sorting Layer属性中,属于同一个图层;又在Order in Layer属性中,为相同的数字呢?那么先放入场景的Sprite先被渲染,后放入场景的Sprite后被渲染而显示在上方。
ForceMode
给具有RigidBody控件
的物体添加力,常常使用的方法就是void Rigidbody.AddForce();有四个重载:
void Rigidbody.AddForce(vector3 Force)
;void Rigidbody.AddForce(Vector3 Force,ForceMode mode)
;
-void Rigidbody.AddForce(float x,float y,float z)
;void Rigidbody.AddForce(float x,float y,float z,ForceMode mode)
其中Force Mode有四种形式:Force Mode..Acceleration
(给物体添加一个持续的加速度,但是忽略其质量,采用默认质量1)ForceMode.Force
(给物体添加一个持有的力,并使用其质量)ForceMode.Impulse
(给物体添加一个瞬间的
力并使用其质量)ForceMode.VelocityChange
(给物体添加一个瞬间的加速度,但是忽略其质量)
Invoke和InvokeRepeating
void Invoke(string methodName, float time)
只执行一次
第一个参数是方法名,第二个参数是延时多少秒。
void InvokeRepeating(string methodName, float time, float repeatRate)
重复执行
其中第二个参数是延迟多长时间后开始,第三个参数是每次执行间隔多少秒数。
查找场景中的一个物体
-
GameObject.find("Player")
通过场景里面的物体名子或者一个路径直接获取游戏对象。
如果你的这个GameObject的acive为 false的话。那么你用GameObject.Find()是无法获取它的对象的。如果对象都获取不到,那么对象身上脚本、组件等都是获取不到的,变成了没有意义的对象。 -
transform.Find(“Player”)`
如果你的这个GameObject的acive为 false的话。用 transform.Find()也可以找到。 -
GameObject.FindGameObjectsWithTag(“tag”)
通过tag找,返回一个 或者 一个数组。 -
GameObject.FindWithTag(“tag”)
通过tag,返回一个物体。 -
Object.FindObjectOfType
根据一个类型返回一个Object -
Object.FindObjectsOfType
-
根据一个类型返回Object,返回一个 或者 一个数组。