团结中自上而下的射击运动员运动控制

时间:2017-08-03 00:29:13

标签: c# unity3d

背景:在Unity 3D中制作小游戏。这是一个自上而下的射手。我正在移动播放器,在其刚体上使用MovePosition()函数,isKinematic设置为false而不使用重力。

期望的行为:当玩家与场景中的障碍物碰撞时,我希望控制玩家的脚本停止尝试将其强制进入对象。

问题:游戏对象的刚体和碰撞器成功阻止玩家穿过固体物体,但玩家有时会抖动,如果物体足够小,玩家就会在物体上出现故障,即使玩家的Y位置是锁定。

问题:为自上而下的射手进行球员移动的最佳方法是什么?我应该使用NavMesh吗?刚体?

1 个答案:

答案 0 :(得分:2)

这是我用于自上而下射击游戏的代码,希望对您有所帮助:)

代码-

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Shooting : MonoBehaviour
{
    public Transform firePoint;
    public GameObject bulletPrefab;

    public float bulletForce = 20f;

    // Update is called once per frame
    void Update()
    {
        if (Input.GetButtonDown("Fire1"))
        {
            Shoot();
        }
    }

    void Shoot()
    {
        GameObject bullet = Instantiate(bulletPrefab, firePoint.position, firePoint.rotation);
        Rigidbody2D rb = bullet.GetComponent<Rigidbody2D>();
        rb.AddForce(firePoint.up * bulletForce, ForceMode2D.Impulse);
    }
}