【自用】Unity基础(一)

Animation,Sound&Effects

Sprite Renderer

  1. 用来在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,返回一个 或者 一个数组。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值