Unity3D小白游戏--打砖块

先让我们康康效果演示:
在这里插入图片描述

1.先创建地面和墙
  • 地面和墙分别为Plane和Cube类型。
  • 将Cube设置为Prefabs(预制体),添加刚体组件
  • 添加材质给地面
    在这里插入图片描述
    在这里插入图片描述
2.制作子弹

我们要让子弹在相机的位置创建并发射,所以要给Main Camera添加一些脚本组件。

(1)让相机移动

在Main Camera上添加一个脚本组件。

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

public class move : MonoBehaviour {

    //可以更方便的控制移动速度
    public float speed = 3.0f;
    // Use this for initialization
    void Start () {
		
	}
	
	// Update is called once per frame
	void Update () {
        //得到水平方向上的移动       
        float h = Input.GetAxis("Horizontal");

        //得到垂直方向上的移动
        float v = Input.GetAxis("Vertical");


        //进行移动
        //Time.deltaTime时间间隔,每帧之间的间隔。例如一秒50帧,则它就代表1/50
        //new Vector3(h, 0, v)*Time.deltaTime  表示每移动一个单位的距离耗时一帧
        transform.Translate(new Vector3(h, v, 0)*Time.deltaTime*speed);

	}
}

产生效果为:
在这里插入图片描述

(2)让相机产生子弹

在Main Camera上添加另一个脚本组件。
这样做的目的是,让功能区别开,方便管理和修改。

我们先创建一个小球,使其成为预制体后,将它删除。
给预制体添加一个刚体组件。

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

public class shot : MonoBehaviour {

    public float speed = 30.0f;
    public GameObject bullents;
    private Rigidbody rd;
	// Use this for initialization
	void Start () {
		
	}
	
	// Update is called once per frame
	void Update () {
        //如果点击鼠标左键
        if (Input.GetMouseButtonDown(0))
        {
            //就创建子弹
            GameObject bullent = GameObject.Instantiate(bullents, transform.position, transform.rotation);


            //得到小球的刚体信息
            rd= bullent.GetComponent<Rigidbody>();

            //给小球一个射击速度
            rd.velocity = transform.forward * speed;
        }
      
	}
}

效果演示:
在这里插入图片描述

好吧,这样球看起来有点太暴躁,所以我多加了一个触发检测。

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

public class WallDestory : MonoBehaviour {


    // Use this for initialization
    void Start()
    {

    }

    // Update is called once per frame
    void Update()
    {

    }
    void OnCollisionEnter(Collision collision)
    {
        if(collision.collider.tag=="duang")
        {
            Destroy(collision.collider.gameObject);
        }
    }
    void OnTriggerEnter(Collider collider)
    {
        if (collider.tag == "duang")
        {
            Destroy(collider.gameObject);
        }
    }

}

在这里插入图片描述

这样就和谐多了。

快去试试吧!!

发布了57 篇原创文章 · 获赞 48 · 访问量 3856

猜你喜欢

转载自blog.csdn.net/qq_42577542/article/details/105122936