摄像机

  • 类型:Camera

描述

Camera用于拍摄场景,也可以指定物体进行拍摄,有多种模式及参数可调。

摄像机功能:

  1. 摄像机有五种模式:固定、跟随、跟拍、捕捉和自定义。

  2. 在编辑模式下,工作区的摄像机只有部分参数生效,在运行模式下会根据 玩家初始化操作模式 属性来决定采用哪个子级 摄像机 对象的参数。

  3. 摄像机的偏移量为拍摄点的偏移量。

  4. 摄像机碰撞开启后,如果摄像机和拍摄物体之间有物体阻挡,摄像机会推至碰撞物体的最前方,若不开启则会将阻挡物变为透明。

  5. 当摄像机对象为 角色 并且距离小于等于0.5时,角色进入第一人称模式,隐藏其他身体部位,切换待机动作,显示假手,关闭自动转向属性,相关脚本及资源均存放在角色对象子级的第一人称文件夹中。

相关链接

  • 教学视频

属性

    CameraType     摄像机类型   Enum.CameraType   
    摄像机的拍摄模式,有跟随、固定、捕捉和跟拍以及自定义5种

    Subject     摄像机对象   RWObject   
    摄像机当前的拍摄对象

    FieldOfView     视场(FOV)   float   
    视场角,决定摄像机的视野范围

    Distance     摄像机距离   float   
    摄像机与拍摄对象之间的距离

    Pitch     垂直角度   float   
    摄像机的垂直角度

    Yaw     水平角度   float   
    摄像机的水平角度

    Offset     偏移量   Vector3   
    摄像机拍摄点的偏移量

    Occlusion     摄像机碰撞   bool   
    摄像机碰撞开启后会将摄像机推至阻挡物前

    Transparency     阻挡物透明度   float   
    摄像机与拍摄对象间阻挡物体的透明度

    MinZoomDistance     摄像机距离下限   float   
    摄像机与拍摄物体间的距离下限

    MaxZoomDistance     摄像机距离上限   float   
    摄像机与拍摄物体间的距离上限

    MinPitchDistance     垂直角度下限   float   
    摄像机在垂直角度上的下限,范围为-90°到0°

    MaxPitchDistance     垂直角度上限   float   
    摄像机在垂直角度上的上限,范围为0°到90°

    FarClipPlane     远景视野范围   float   
    摄像机到视野范围内最远可见物的距离

继承自RWObject

    Name     名称   string   
    该对象的自定义名称

    ClassName     类型   string   
    该对象对应的对象类型名称

    Parent     父级   RWObject   
    该对象的父级对象

函数

    GetLargestDistance()
    当相机与拍摄对象之间存在遮挡物时,需要移动摄像机,使相机到拍摄对象之间没有遮挡物,这个函数返回的是摄像机需要移动的距离

    GetAllObscuringParts()
    获取相机与拍摄对象之间存在的所有遮挡物,将遮挡物对象作为列表并返回

    ScreenToRay(pos)
    从屏幕的指定坐标发出射线,射线方向与摄像机一致

    ViewportToRay(pos)
    从相机Viewport的指定坐标发出射线,射线方向与摄像机一致

    WorldToScreen(pos)
    将指定的游戏世界的坐标转换为屏幕坐标

    WorldToViewport(pos)
    将指定的游戏世界的坐标转换为相机的Viewport坐标

继承自RWObject

    DelAllChild()
    删除所有子对象

    Available()
    检查对象是否可用

    Clone(parent)
    复制自身,若有参数则以参数为父级

    Destroy()
    删除自身

    GetAncestorByName(Name)
    通过对象名字寻找父级对象

    GetAncestorByClassName(className)
    通过对象类型寻找父级对象

    GetChildByName(Name,recursive)
    通过对象名字寻找子级对象

    GetChildByClassName(className,recursive)
    通过对象类型寻找子级对象

    GetAllChild()
    寻找自身所有子级对象,并作为一个列表返回

    GetAllDescendant()
    递归寻找自身所有后代,并作为一个列表返回

    IsAncestor(TarObj)
    判断自身是否为目标对象的祖先

    IsDescendant(TarObj)
    判断自身是否为目标对象的后代

    WaitForChild(childName,timeout)
    寻找自身的子对象。如果没有子对象,在没有填写timeout参数时,会暂停进程直到找到子对象;如果填写了timeout参数,会根据参数时间暂停进程,超出参数时间后,进程照常进行

    Child(childName)
    根据给定的名字寻找自身的子对象

    Equals(TarObj)
    判断自身是否为目标对象,结果为真返回True,结果为假返回False;注意克隆、新建同类型、同名对象,equal结果均为假

    IsClass(className)
    判断自身是否为给定的对象类型

事件

继承自RWObject

    Destroyed()
    删除自身时触发

    ChildAdded(childobject)
    添加子对象时触发

    ChildRemoved(childobject)
    移除子对象时触发

    DescendantAdded(descendantobject)
    添加后代时触发

    DescendantRemoved(descendantobject)
    移除后代时触发

    AncestryChanged(AncestryChanged)
    祖先变更时触发

文档更新时间: 2020-08-25 10:56   作者:刘征