從零開始的Unity個人學習日記(二)

小白刷PAT發表於2020-09-29

SiKI學院打磚塊教程
本篇內容來源SiKi學院,侵刪

一、最終效果

在這裡插入圖片描述

二、製作過程

在這裡插入圖片描述

(一)建立遊戲物體

  1. 地面:建立plate,新增3D碰撞元件。
  2. 牆:建立cube設定成prefab,新增剛體,碰撞元件。複製多個cube擺成牆。
  3. 子彈:建立sphere設定成prefab。
  4. 光源:預設光源。
  5. 攝像機:預設攝像機。

(二)新增指令碼程式碼

  1. 為攝像機新增一個shoot指令碼,用於從攝像機位置向Z軸正方向建立併發射子彈例項。
using UnityEngine;

public class shoot : MonoBehaviour
{
    public GameObject bullet;//連結至prefab的sphere
    public float speed = 5;
    
    void Start()
    {
    	
    }

    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        //如果按下滑鼠
        {
            GameObject b = GameObject.Instantiate(bullet, transform.position,transform.rotation);
            //在攝像機位置建立例項
            Rigidbody rgb = b.GetComponent<Rigidbody>();
            //獲取生成例項的剛體元件
            rgb.velocity = transform.forward * speed;//剛體元件的初速度為向前單位向量*設定速度
        }
    }
}

  1. 為攝像機新增方向按鍵控制其平移的指令碼move。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;



public class move : MonoBehaviour
{
    public float speed = 5;

    void Start()
    {
        
    }

    void Update()
    {
        float h = Input.GetAxis("Horizontal");
        //獲取水平方向數值,由鍵盤“左右或AD”按鍵控制
        float v = Input.GetAxis("Vertical");
        //獲取豎直方向數值
        transform.Translate(new Vector3(h, v, 0) * Time.deltaTime * speed);
        //transform元件Translate方法,由h,v控制x,y軸移動距離,每幀移動的距離與單幀時常繫結,再乘速度係數。
    }
}

相關文章