美文网首页
UNITY实现上车与下车效果

UNITY实现上车与下车效果

作者: 观南屏听晚钟 | 来源:发表于2017-06-07 19:49 被阅读0次

前些日子,做了一个项目,在上车下车的问题上困扰了很久,因为上车之后,要将游戏人物设为非激活,而要下车的时候根本无法实现。后来想了一个办法,引入了一个int值,当进行上下车操作的时候,将int值进行修改,然后根据int值进行上车和下车的操作。
首先,为坦克设置碰撞体检测,并对坦克的相应的动画进行设置
代码如下:
public class TankTrigger : MonoBehaviour
{

//玩家
private GameObject player;

//坦克移动脚本
private TankMove tankMove;
//坦克旋转脚本
private TankRotate tankRotate;
//坦克开火脚本
private TankFire tankFire;
//bool值,当前操作的是否为坦克
private bool isTank = false;
//int值
int a = 0;
//在坦克上的摄像机
private GameObject tankCamera;
//进入坦克的时候的过渡画面
private Image panel;
//离开坦克的时候的过渡动画
private Image downPanel;
//float值
private float alpha;
private float beta;

void Awake()
{
    player = GameObject.FindWithTag("Player");
    tankMove = transform.GetComponentInChildren<TankMove>();
    tankRotate = transform.GetComponentInChildren<TankRotate>();
    tankFire = transform.GetComponentInChildren<TankFire>();
    panel = GameObject.FindWithTag("Panel").GetComponent<Image>();
    downPanel = GameObject.FindWithTag("DownPanel").GetComponent<Image>();
    //关闭坦克组件
    transform.GetChild(0).GetChild(0).GetChild(0).gameObject.SetActive(false);
    tankRotate.enabled = false;
    tankMove.enabled = false;
    tankFire.enabled = false;
}

void Update()
{
    //按下F键,int值加一,当int值能够整除2的时候进行下车操作,不能被2整除的时候                          自然进行上车操作
    if (Input.GetKeyDown(KeyCode.F))
    {
        a++;
      
    }
    if (Input.GetKeyDown(KeyCode.F)&& a %2==0)
    {
        Down();
    }

}

///上车
void OnTriggerStay(Collider other)
{
   //两个float值用于设置过渡画面的渐变效果
    alpha += 0.01f;
    beta -= 0.01f;
    if (!isTank)
    {
        if (other.CompareTag("Player"))
        {
            if (Input.GetKeyDown(KeyCode.F))
            {
               //渐变上车动画,隐藏人物,开启坦克摄像机,并开启所有有关Tank的脚本
                panel.color = new Color(255, 255, 255, alpha);
                player.transform.SetParent(transform);
                player.SetActive(false);
                transform.GetChild(0).GetChild(0).GetChild(0).gameObject.SetActive(true);
                tankMove.enabled = true;
                tankRotate.enabled = true;
                tankFire.enabled = true;
                isTank = true;
               //协程,一段时间之后过渡画面消失
                StartCoroutine(PanelA());
            }
        }
    }
}

IEnumerator PanelA()
{
    yield return new WaitForSeconds(1);
    panel.color = new Color(255, 255, 255, beta);
}

//下车
void Down()
{
    alpha += 0.01f;
    beta -= 0.01f;
    if (isTank == true)
    {
        if (Input.GetKeyDown(KeyCode.F))
        {
            //渐变下车动画,设置人物位置,开启人物摄像机,并关闭所有有关Tank的脚本
            downPanel.color = new Color(255, 255, 255, alpha);
            transform.GetChild(0).GetChild(0).GetChild(0).gameObject.SetActive(false);
            player.SetActive(true);
           //使人物出现在坦克的附近
            player.transform.position = transform.GetChild(0).GetChild(1).position+ new Vector3(1.5f, 0, 0);
            player.transform.SetParent(transform.parent.parent);
            tankMove.enabled = false;
            tankRotate.enabled = false;
            tankFire.enabled = false;
            isTank = false;
            StartCoroutine(PanelB());
        }
    }
}

IEnumerator PanelB()
{
    yield return new WaitForSeconds(1);
    downPanel.color = new Color(255, 255, 255, beta);
}

}

相关文章

  • UNITY实现上车与下车效果

    前些日子,做了一个项目,在上车下车的问题上困扰了很久,因为上车之后,要将游戏人物设为非激活,而要下车的时候根本无法...

  • 上车,下车

    人生就好像乘坐一列单程火车。在这个旅途中,有人上车,也有人下车。最后你会发现,能陪你走到终点的,只有你自己!

  • 下车,上车

    日出,日落;起床,睡觉;上班,下班……看似相同的每一天就这样背对着青春不一样地度过着。如果不是偶然发现俩娃悄悄长高...

  • Unity旋转和缩放02-控制摄像机

    Unity旋转和缩放01-控制模型自身 PC端:控制摄像机,围绕模型旋转实现旋转效果、与模型的距离实现缩放效果。功...

  • Unity Shader 深度值重建世界坐标

    Unity Shader-深度相关知识总结与效果实现(LinearDepth,Reverse Z,世界坐标重建,软...

  • 上车,还是下车

    人生就像这分界线,你是上车还是下车,路都在你的脚下。 这是我今天做地铁拍的一张照片,由此发了一个朋友圈。 上车还是...

  • 上车下车

    记得,列车往返于武汉长江大桥的时候,都已接近深夜。 窗外,出奇的冷。尽管已近初夏,却依稀能从路边的树叶上发现严冬才...

  • 上车下车

    一天。 “嘿,这试卷卷面分怎么是一百一十哦?” “哪里是一百一十哦” 低头继续吃饭 “就是一百一十啊,你看呀” “...

  • 上车下车

    路上,捡起双脚 抚摸那时间摩擦中留下的老茧与伤疤 放下 让它们走 尝尝路上新鲜的雨雪与阳光与鲜花 抬高一跃上了天下...

  • 上车下车

    上车下车 一路上车下车,伴随人流喧嚣到稀落 看着一张张陌生的脸庞,心底慰生的暖意 想知道他...

网友评论

      本文标题:UNITY实现上车与下车效果

      本文链接:https://www.haomeiwen.com/subject/hzuafxtx.html