【问题标题】:Underwater in unity5水下团结5
【发布时间】:2015-11-20 20:57:19
【问题描述】:
using UnityEngine;
using System.Collections;

public class underWater : MonoBehaviour {
    public float uwaterLevel=15f;
    public Color normalColor;
    public Color underWaterColor;



    void Start () {
        normalColor = new Color (0.5f,0.5f,0.5f,0.5f);
        underWaterColor = new Color (0.22f,0.65f,0.77f,0.5f);

    }


    void Update () {
        Debug.Log (uwaterLevel);
        Debug.Log (transform.position.y);
        if(Camera.main.transform.position.y<uwaterLevel){
            Debug.Log("Underwater Update");
            setUnderWater();
        }else{
            Debug.Log("Normal Update");
            setNormal();
        }

    }
    public void setUnderWater(){
        Debug.Log("Under Water");
        RenderSettings.fog = true;
        RenderSettings.fogDensity = 0.05f;
        RenderSettings.fogColor = underWaterColor;

    }
    public void setNormal(){
        Debug.Log("Normal");
        RenderSettings.fog = true;
        RenderSettings.fog = false;
        RenderSettings.fogDensity = 0.003f;
        RenderSettings.fogColor = normalColor;

    }
}

如何检测我的角色是否在水下?水高于地面(山间的湖),所以我不能使用负 Y 轴。我正在使用 Unity Standard Assests 中的 FPSController。

【问题讨论】:

    标签: unity3d game-engine unityscript


    【解决方案1】:

    制作一个大Collider水的大小。让它成为一个触发器。将其标记为"Water"

    public void OnTriggerEnter(Collider col)
    {
        if(col.tag == "Water")
        {
            // In water
        }
    }
    
    public void OnTriggerStay(Collider col)
    {
        if(col.tag == "Water")
        {
            // In water
        }
    }
    
    public void OnTriggerExit(Collider col)
    {
        if(col.tag == "Water")
        {
            // Exit water
        }
    }
    

    【讨论】:

      【解决方案2】:

      我发布的是答案而不是评论,因为我还不能评论。

      与 Andrew 所说的类似,为了防止您的角色在您的角色一踏入水中时就认为您在水下,您可以在角色头顶上方几厘米处添加一个空的游戏对象并在其上放置一个碰撞器.

      然后使用 Andrew 的逻辑来确定你的角色在水下。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-03-01
        • 2017-09-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多