拍摄时磕磕碰碰? Unity3D

时间:2015-01-02 00:05:59

标签: c# unity3d

我目前正在拍摄射手,我找不到任何可以帮助我解决问题的事情。我想让他的角色在他射击时回击,但是当玩家使用不同的武器时,回击应该是不同的,所以他在自己射击时可以做双跳。例如当玩家使用武器1时,击退是2,当武器2然后3。

感谢并抱歉这个简单的问题,但我开始学习。

马塞尔

1 个答案:

答案 0 :(得分:2)

你可以给每个武器一个击退或后坐值(可能是浮动)。然后当在该武器上调用射击时,你可以在你的玩家上调用KnockBack(浮动量)方法。然后可以使用Rigdigbody.AddForce()在播放器的向后方向向玩家添加力。

你的击退代码然后由玩家处理,每个武器保留它自己的击退金额。如果您希望这样做,这应该能够做出依赖于拾取器的乘数等事情。

我想代码看起来类似于下面的内容。我没有测试过这段代码,只是在一个基本的文本编辑器中将其掀起,所以复制和粘贴可能无法正常工作,但逻辑就在那里。您必须决定如何将武器与玩家联系起来,但这不在问题范围之内。

Weapon.cs

using System.Collections;

public class Weapon
{
    private int damage;
    private float knockbackAmount;

    private Player ownerPlayer;

    public Weapon(Player ownerPlayer)
    {
        damage = 5;
        knockback = 5.0f;

        this.ownerPlayer = ownerPlayer;
    }

    public void Shoot()
    {
        // do the shooting

        ownerPlayer.Knockback(knockbackAmount);
    }
}

Player.cs

using UnityEngine;
using System.Collections;

public class Player : MonoBehaviour
{
    private int health;

    public Player()
    {
        health = 100;
    }

    public void Knockback(float amount)
    {
        gameObject.rigidbody.AddForce(Vector3.back * amount)
    }
}