iT邦幫忙

2022 iThome 鐵人賽

DAY 10
0
自我挑戰組

從零開始用Unity設計遊戲系列 第 10

優化角色移動(跳躍)!

  • 分享至 

  • xImage
  •  

今天是挑戰的第10天~~~

在做終點前,我發現遊戲需要做更多的優化,像是這次的優化的目標是讓角色能跳躍,要做一個簡單的小遊戲,我認為跳躍鍵是很多遊戲必備的像是許多FPS,RPG類型的都需要,因次這次要賦予跳躍鍵給角色,以下是更新後的程式碼。

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

public class moving : MonoBehaviour

{
    public Rigidbody2D rigid2D;
    // 新增控制角色的剛體的動作
    // Start is called before the first frame update
    void Start()
    {
       
    }

    // Update is called once per frame
    void Update()
    {
        if (Input.GetKeyDown("space"))
        {

            rigid2D.AddForce(new Vector2(0, 20),ForceMode2D.Impulse);
            print("jump");

        }
        if (Input.GetKey("left"))
        {
            transform.Translate(-0.05f, 0, 0);
        }
        if (Input.GetKey("right"))
        {
            transform.Translate(0.05f, 0, 0);
        }
        if (Input.GetKey("down"))
        {
            transform.Translate(0, -0.05f, 0);
        }
    
        }
    }

這是主要新增這段程式碼

rigid2D.AddForce(new Vector2(0, 20),ForceMode2D.Impulse);print("jump");

首先是rigid2D這主要是被控制的剛體,接著加入AddForce也就是物力中給這剛體一股力,而這力的向量是new Vector2(0, 20)往X軸方向的力為0,向上的力為20,接下來是ForceMode2D也就是此股力的型態,主要分為Impulse和Force,而Impulse也就是衝力或脈衝力,對物件施加一股瞬間的力,具有方向性。然後Force就有點像推動東西不斷對物件施加一股具方向性的力。所以跳躍這部分選擇使用Impulse。

最後我覺得還需要更多的優化,下次優先優化的目標應該是攝影機,因為目前遊玩時,攝影機是固定的,時常物件會跑出範圍而無法遊玩!!!

參考資料

https://www.youtube.com/c/RemptyGame


上一篇
抵達終點前先了解碰撞規則
下一篇
目標:控制攝影機
系列文
從零開始用Unity設計遊戲30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言