C# 球体对撞机碰撞射击玩家飞船?

C# 球体对撞机碰撞射击玩家飞船?,c#,unity3d,C#,Unity3d,好的,我在看我方面取得了一些进展,我能够让敌舰跟随玩家,激光枪也可以使用一些指导,如何让激光杀死玩家飞船,并提示丢失和“R”重新启动消息,欢迎提供有关如何进行的详细信息 using System; using System.Collections; using System.Collections.Generic; using UnityEngine; public class EnemyManagement : MonoBehaviour { [SerializeField] Ga

好的,我在看我方面取得了一些进展,我能够让敌舰跟随玩家,激光枪也可以使用一些指导,如何让激光杀死玩家飞船,并提示丢失和“R”重新启动消息,欢迎提供有关如何进行的详细信息

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


public class EnemyManagement : MonoBehaviour
{
    [SerializeField] GameObject deathFX;
    [SerializeField] Transform parent;
    // The target marker.
    [SerializeField] Transform target;

    // Angular speed in radians per sec.
    [SerializeField] float speed;

    // Start is called before the first frame update
    void Start()
    {
        AddSphereCollider();
    }

    private void AddSphereCollider()
    {
        Collider sphereCollider = gameObject.AddComponent<SphereCollider>();
        sphereCollider.isTrigger = false;
    }

    void Update()
    {
        Vector3 targetDir = target.position - transform.position;

        // The step size is equal to speed times frame time.
        float step = speed * Time.deltaTime;

        Vector3 newDir = Vector3.RotateTowards(transform.forward, targetDir, step, 0.0f);
        Debug.DrawRay(transform.position, newDir, Color.red);

        // Move our position a step closer to the target.
        transform.rotation = Quaternion.LookRotation(newDir);
    }
}

使用系统;
使用系统集合;
使用System.Collections.Generic;
使用UnityEngine;
公营医疗管理:单一行为
{
[SerializeField]游戏对象死亡fx;
[序列化字段]转换父项;
//目标标记。
[序列化字段]转换目标;
//角速度(弧度/秒)。
[字段]浮动速度;
//在第一帧更新之前调用Start
void Start()
{
AddSphereCollider();
}
私有void AddSphereCollider()
{
Collider sphereCollider=gameObject.AddComponent();
sphereCollider.isTrigger=false;
}
无效更新()
{
Vector3 targetDir=target.position-transform.position;
//步长等于速度乘以帧时间。
浮动步长=速度*时间.deltaTime;
Vector3 newDir=Vector3.向旋转(transform.forward,targetDir,step,0.0f);
DrawRay(transform.position,newDir,Color.red);
//把我们的位置移近目标一步。
transform.rotation=Quaternion.LookRotation(newDir);
}
}

您需要给它一个半径,以便进行碰撞检测


sphereCollider.radius=10.0f

很酷。你添加了一个对撞机。伟大的“在碰撞时,调用
FireeneMyGunsaActivity()
”的代码在哪里?您好,Draco,我做了一些更改,因为您上次阅读的内容仍然不起作用,我将创建一个在碰撞时调用并返回:/
OnPartilceCollision
不正确。另外,现在您缺少任何开火代码。好的,谢谢您的洞察力。提示:
播放器是粒子吗?不那你为什么要在粒子碰撞方法中检查播放器呢?我更改了代码并添加了一些注释,请再次阅读,我会研究你的建议。非常感谢。