コード例 #1
0
    void RaycastToBurnable()
    {
        Debug.Log("rdy to burn");
        Ray ray = new Ray();

        if (npc)
        {
            ray.origin    = transform.position;
            ray.direction = transform.forward;
        }
        else
        {
            ray.origin    = Camera.main.transform.position;
            ray.direction = Camera.main.transform.forward;
        }

        RaycastHit hit;
        GameObject fireEffect;

        if (Physics.Raycast(ray, out hit))
        {
            // Spawn particle effect at hit point
            if (fire != null)
            {
                fireEffect = Instantiate(fire,
                                         hit.point, Quaternion.identity);
            }
            else
            {
                fireEffect = GameObject.CreatePrimitive(PrimitiveType.Sphere);
                fireEffect.transform.position = hit.point;
                particleSystemDuration        = 3f;
            }

            Destroy(fireEffect, particleSystemDuration);

            IBurnable burnable =
                hit.transform.gameObject.GetComponent <IBurnable>();

            if (burnable != null)
            {
                burnable.Burns();
            }
        }
    }