今天是挑戰的的第16天~~!!
昨天順利的把角色的動畫和切換的控制加入後,發現雖然攝影機已經能順利更隨角色與限制範圍,但是角色因為還沒限制,因此會發生角色超出範圍,而攝影機找不到角色的問題。所以今天要來限制角色能移動的範圍。
這次要再新增一個C# Script,內容如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class stay : MonoBehaviour
{
// Start is called before the first frame update
void Start() {}
// Update is called once per frame
void Update()
{
transform.position = new Vector3(Mathf.Clamp(transform.position.x, -38.5f, 76.5f), Mathf.Clamp(transform.position.y, 1.3f, 22.0f), transform.position.z);
}
}
主要是利用Mathf.Clamp來做限制而裡面的參數順序是value,min,max,也就是限制value的值在min與max之間,要是value大於max會回傳max,而value小於min則會回傳min,而上面是限制X的範圍與Y的範圍,完成後再把需要限制的物件套用上去即可完成。
在編寫的過程中,有看到不少方法,這是使用的應該是最簡單的版本,其中看到比較特別的是建立一個Collider利用碰撞效果來限制,但自己嘗試並未成功,不知道是否因為物件有些設定錯誤,導致角色碰撞失敗QAQ