欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

吃鸡降落伞降落,射线检测,触发销毁降落伞等

程序员文章站 2022-03-21 23:49:54
...

1.导入资源包后,设置飞机动画,选中飞机游戏物体后ctrl+6;新建一个,选择position,然后定义第一帧和最后一帧,调节速度,即可,动画循环播放勾掉.
2.降落伞处理,挂载脚本xialuo;

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

public class xialuo : MonoBehaviour {
    Rigidbody rb;//定义一个刚体
    GameObject obj1;//定义一个游戏物体
    GameObject obj2;
    GameObject obj3;
    GameObject obj4;
    // Use this for initialization
    void Start () {
        obj1 = GameObject.Find("CarePaKage_01");//找到游戏物体
        obj2 = GameObject.Find("ParachuteCare");
        obj3 = GameObject.Find("Camera");
        obj4 = GameObject.Find("Particle System");//粒子系统
        obj1.GetComponent<MeshRenderer>().enabled = false;//取消组件渲染,必须要先写false再写true才能行,手动勾掉没有用;
        obj2.GetComponent<MeshRenderer>().enabled = false;
        obj4.SetActive(false);

        rb = GetComponent<Rigidbody>();//赋值组件
        rb.useGravity = false;
    }
    void OnTriggerEnter(Collider other)//碰撞触发
    {
        Destroy(obj3);
        //obj4.GetComponent<Camera>().enabled = true;
        rb.useGravity = true;//重力勾选
        obj1.GetComponent<MeshRenderer>().enabled = true;//**渲染
    }

    // Update is called once per frame
    void Update () {
        Ray myRay = new Ray(transform.position, Vector3.down );//射线 (位置,方向)
        RaycastHit hit;
        if (Physics.Raycast(myRay, out hit, 30))//射线触发,射线长度30
        {
            if (hit.collider.gameObject.tag == "ground")//如果射线触到标签为ground的物体
            {
                obj2.GetComponent<MeshRenderer>().enabled = true;
                rb.drag = 6;//游戏物体阻力变为6;减速
                if (this.transform.position.y < 2.0f)
                {
                    obj4.SetActive(true);
                    obj2.GetComponent<MeshRenderer>().enabled = false;
                }
            }
        }
    }

}

最后在摄像机上挂跟随脚本,可以导入characters,然后添加脚本Smooth Follow在摄像机上,或者挂下边的代码

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

public class shexiangjigensui : MonoBehaviour {

    //把摄像机相对于物体的距离写死
private Vector3 distance;
public GameObject player;//我们要跟随的物体
void Start()
{
//计算摄像机和要跟随物体之间的距离
distance = player.transform.position - transform.position;
//因为距离被写死了,所以中间距离不会变化。
}
void Update()
{
//现在我们要确定自身的位置  用跟随的物体坐标减去中间距离
    transform.position = player.transform.position - distance;
}
}

摄像机切换

先在飞机上挂个子物体摄像机;Depth大于空投上的的摄像机值,这样就先显示飞机飞动,等两物体相遇触发时消除飞机的摄像机,这样就实现了摄像机镜头的切换.

粒子系统模拟烟尘和红色信号烟

落地烟尘

新建粒子系统在空投上,Rotation X调整为-90,这样方向向上.然后Shape形状调为Circle,Start Delay延时发射调为零,Start Lifetime调为2;Start Speed调为4,Emission点开,点加号,爆发,最小50最大80;Color overLifetime调节颜色,透明度;Size over Lifetime,调节尺寸.

信号烟雾

吃鸡降落伞降落,射线检测,触发销毁降落伞等
吃鸡降落伞降落,射线检测,触发销毁降落伞等

相关标签: unity