コード例 #1
0
ファイル: BurnCaster.cs プロジェクト: bradur/Alakajam5
    void CheckBurnablePossibilities()
    {
        RaycastHit hit;
        RaycastHit torchHit;
        Vector3    endPoint        = transform.TransformDirection(Vector3.forward);
        bool       rayHitSomething = CastBurnableCheckRay(endPoint, out hit);
        bool       rayHitTorch     = CastTorchCheckRay(endPoint, out torchHit);

        if (rayHitSomething && !rayHitTorch)
        {
            //Vector3 point = hit.point;
            targetBurnable = GetBurnableObject(hit);
        }
        else if (rayHitSomething && rayHitTorch && torchHit.distance > hit.distance)
        {
            targetBurnable = GetBurnableObject(hit);
        }
        else
        {
            if (previouslyHitBurnable != null)
            {
                previouslyHitBurnable.SetMaterial(fireConfig.BurnableDefaultMaterial);
            }
            targetBurnable = null;

            /*Vector3 point = transform.position + transform.forward * fireConfig.MaxDistance;
             * point.y = 0f;*/
        }
        DebugRayCast(hit, rayHitSomething);
    }
コード例 #2
0
ファイル: BurnCaster.cs プロジェクト: bradur/Alakajam5
    Burnable GetBurnableObject(RaycastHit hit)
    {
        BurnableCollider burnableItem = hit.collider.GetComponent <BurnableCollider>();

        if (previouslyHitBurnable != null && previouslyHitBurnable != burnableItem)
        {
            previouslyHitBurnable.SetMaterial(fireConfig.BurnableDefaultMaterial);
        }
        if (burnableItem != null)
        {
            if ((!burnableItem.Burnable.IsLit && playerHandConfig.hasFire))
            {
                previouslyHitBurnable = burnableItem;
                burnableItem.SetMaterial(fireConfig.BurnableHighlightMaterial);
                return(burnableItem.Burnable);
            }
        }
        return(null);
    }