zoukankan      html  css  js  c++  java
  • UnrealScript常用函数汇总

    转自:http://www.unrealchina.org/forum.php?mod=viewthread&tid=672&extra=page%3D1

    foreach [用来遍历游戏中的数据,使用方法如下]

    local StaticMeshActor myActor;
    foreach AllActors(class'StaticMeshActor',myActor)
    {
        if(myActor.Tag == 'Box')
        {
            myActorSize.X = 1;
            myActorSize.Y = myActor.DrawScale3D.Y;
            myActorSize.Z = myActor.DrawScale3D.Z;
            myActor.SetDrawScale3D(myActorSize);
        }
    }    

    这样foreach就能获得场景中的所有静态模型,并把它赋值给myactor,我们操作myactor就是操作场景中的静态模型了,例如控制他的位置,控制他的大小,他的旋转等等.
    在其中的if是判断这个获取到的myactor的tag标签是不是BOX,如果是就更改他的大小,简单说这样就是有针对性的更改,而不会把所有的静态模型更改了。


    Spawn,实例化一个类,使用方法:Spawn(class'MyWeapon',,,Location,Rotation,,true);在主角的位置,主角的旋转的方向实例化一个我的武器类,简单说就是把不存在的物体放到场景中.
    SpawnEmitter,实例化一个粒子,使用方法:

    var ParticleSystem DamageParticle;
    worldinfo.MyEmitterPool.SpawnEmitter(DamageParticle,HitLocation);

    默认属性中DamageParticle = ParticleSystem'WP_LinkGun.Effects.P_WP_Linkgun_Beam_Impact_HIT'[PS特效自己指定]这就是说在某些情况下触发一个粒子特效,当然不要指望他有伤害,他只是可以看见
    VSize计算距离的函数,他能把两个vector值减掉后计算出他们的距离,使用方法:VSize(MyWea.Location - Location),例如用来判断敌我距离等等
    附加说明: A坐标-B坐标,得出来的值,是从B坐标到A坐标的向量. 而VSize(向量),得出来的值,不一定就是正数,如果只是为了求距离的话,还是要Abs(VSize(坐标A-坐标B) ). 这样绝对值以后就是正数的距离了. 


    OnAnimEnd函数,用来检测一个动画是否播放完成,需要注意的是你的动画没有设置为循环播放,否则将不会触发,

    simulated event OnAnimEnd(AnimNodeSequence SeqNode,float PlayedTime, float ExcessTime)
    {
        super.OnAnimEnd(SeqNode, PlayedTime, ExcessTime);
        worldinfo.Game.Broadcast(self,SeqNode.AnimSeqName);
    }

    这样就会输出播放完成的动画的名字,用处很广

    UTPawn类常用函数:
    SetLocation(设置坐标)
    SetRotation(设置朝向)
    SetPhysics(设置物理类型,例如PHYS_Walking:走路 PHYS_Flying:飞行 PHYS_Falling:下落)
    PostInitAnimTree(初始化动画树的事件,可以在里面添加自己需要的东西)
    FellOutOfWorld(掉出世界的事件,一般就直接死亡,也可以自己重载)
    PostBeginPlay(角色初始化完毕,进入游戏的事件)
    Landed(角色落地事件)
    TakeDamage(受到伤害事件)
    TakeFallingDamage(落地受伤事件)
    WeaponChanged(武器已经切换的事件)
    SetCharacterClassFromInfo(使用FamilyInfo中的资源设置角色的函数)
    SetMeshVisibility(开关角色是否显示)
    UTPawn的Mesh组件常用函数:
    GetSocketWorldLocationAndRotation(获取插槽世界坐标和朝向)
    GetSocketByName(根据插槽名字获取插槽)
    IsComponentAttached(返回参数中的组件是否已经附加)
    AttachComponentToSocket(附加组件到插槽上)
    AttachComponent(附加组件到(0,0,0)的相对坐标)
    DetachComponent(取消组件的附加)
    SetScale(设置模型等比缩放比例)
    SetScale3D(设置模型不等比缩放比例)
    SetMaterial(设置模型材质)
    PlayAnim(播放动画包里对应名字的动画,不通过动画树)
    StopAnim(停止播放动画)
    //以下几个一般都配套使用,不然容易游戏崩溃
    SetSkeletalMesh(设置骨骼模型,例如换人功能)
    SetPhysicsAsset(设置物理资源)
    SetAnimTreeTemplate(设置动画树)
    Mesh的AnimSets变量数组存放了模型需要使用的动画包资源 
    UTPawn常用变量:
    Health(生命值)
    HealthMax(生命最大值)
    Velocity(速度)
    Acceleration(加速度)
    JumpZ(跳跃高度)
    GroundSpeed(地面移动速度)
    AirSpeed(飞行速度)
    WaterSpeed(游泳速度)
    DodgeSpeed(双击方向键的跳跃回避速度)
    DodgeSpeedZ(回避高度)
    ViewPitchMin(低头的最小角度,为负数.)
    ViewPitchMax(抬头的最大角度,这2个角度取值都是65535=360度,但是一般抬头看天是90度,所以最大顶多是设置65536(16进制10000)/4-1=16383,低头角度同理. 如果要做飞机,因为飞机是可以倒着飞的,那么可以加宽限制.或者修改PlayerController里的LimitViewRotation函数.)
    bBlockActors(是否会阻挡其他Actor,如果你不想要2个Actor能互相阻挡,设置false后就可以互相穿过,要2边都设置才行)
    不常用变量:
    bReplicateHealthToAll(是否同步生命值给所有玩家)
    bCanDoubleJump(是否可以2连跳)
    MaxStepHeight(可以跨越的最大高度,设置大了可以直接从楼下走到楼顶_, 设置小了会被路边小石头挡住)
    bCanJump(是否可跳跃. 从字面上和实际使用上的确是这样.但是这个变量还有隐藏功能: 设置为false后,你将不能从平台上走(掉)下去 )
    bCanCrouch(是否可下蹲,隐藏功能:设置为false后,AI的寻路功能将会大幅度受到影响,本来能走过去的地方也走不过去)
    CrouchHeight和CrouchRadius(下蹲后的碰撞盒大小,也和AI的寻路有关,设置小了,AI的寻路也将更灵活,但是如果比AI本身的碰撞盒小的话,有可能会被东西卡住)
    bProjTarget(是否会被子弹打到,其实这个我也没用过啦)

  • 相关阅读:
    (转载)链表环中的入口点 编程之美 leecode 学习
    leecode single numer
    leecode 树的平衡判定 java
    Let the Balloon Rise
    Digital Roots
    大数加法,A+B
    小希的迷宫
    畅通工程
    lintcode596- Minimum Subtree- easy
    lintcode597- Subtree with Maximum Average- easy
  • 原文地址:https://www.cnblogs.com/sevenyuan/p/4453069.html
Copyright © 2011-2022 走看看