2023年7月25日 自我思考的第一天

2021-09-25 13:45:41 字數 2379 閱讀 2829

今天其實是乙個激動人心的日子,因為我們要開始我們的創作了,讓我們先梳理一下思路。

現在的人物已經能夠實現跳躍奔跑和搬運,遇到的敵人也可以通過踩頭殺死。

第乙個要實現的功能——給搬起來的箱子乙個實體,光有力靈魂可沒用

不過有乙個很難受的bug,其實也不能算是bug,就是在搬起箱子的時候,箱子掛在的grabsocket上,但我們為了讓箱子不受其他力的作用,我們將箱子rigid中的kinematic勾選上了,這個選項會讓箱箱子處於乙個不受其他任何外力作用的狀態,這裡我們選擇禁用一下kinematic。自己建立了乙個bool變數,這個bool變數是用於判斷是否舉起箱子的,這個時候我們需要將箱子的位置不停重新整理,因為箱子可能會受外力,如重力,因此這個時候就需要沒一幀的重新整理讓其與角色的相對位置進行乙個重置,即保持每一幀不變。我發現了這裡我們在方法中已經用了:

if (grabobject != null && rotatecomplete)

看到object為null了麼?這裡object就是我們抓取後需要掛在grabsocket上面的物體。即可以直接把這個當作判讀用的bool變數:

protected override void update()//過載函式

base.update();//呼叫之後再進行一次主重新整理函式

}

這裡豐富了我們進行過載的重新整理函式,加入了判斷,我們角色的本地位置和抓取物的本地位置進行繫結,可是這裡就會出現一些問題。即繫結了位置,箱子就會進行「虛化」,即可以穿過除了同樣是grabbox的所有材質,這會讓遊戲顯得不真實。

這裡我想到了乙個辦法,就是讓角色舉起箱子的位置做出一下改變,從水平變成豎直。之後用charactercontroller中的類collier屬性來對這兩個東西進行包裹。隨後我發現這其**現了一些邏輯問題,我會細說,因為每個人的思考方式都獨一無二。

1、我選擇直接對charactercontroller中的膠囊碰撞collider進行拉伸,變成豎直可以直接裝下人和轉的長度,但人物的一般行動如跳躍就被最直接的限制了。當然,我也當即想到了相應的解決方法,不過不太可行。就是在人物抓取之前人物的膠囊碰撞範圍為人物大小,之後將hight進行改變,想象都是美好的,這裡問題就出在,膠囊碰撞的高度改變都伴隨著center的改變,中心的變化就會影響射線的射出方向,因此我們搬箱子又受到了影響。就算經過很多修改之後可能達到預想的效果,不過我知道這不是我想要的。

2、我選擇多建立乙個boxcollider進行拼接,剛開始進行隱藏,在object不為null即有搬運物的時候取消隱藏用角色本身的collider來包裹物體。這個時候依舊遇到了問題,即乙個角色在一般情況下只能擁有乙個collider,且其物理材質貌似是charactercontroller優先使用,因此,儘管我設定了位置且沒有隱藏,其依舊不影響我建立的角色的碰撞,其碰撞框架也僅僅是原來的膠囊碰撞框架。

3、我對原character指令碼中的rotate方法中的轉動速度進行了更改。呼叫的地方是在playercontroller中,我將旋轉的速度改的非常快即瞬間轉身,不然若旋轉太慢會出現很多由碰撞引發的bug。

4、相機的修改,原來的相機只是實時接收我們角色的xz軸,下面我們還需要實時接收y軸transform.position.y這有利於我們角色的跟隨。這和我們的關卡設計也有關係,我們設定的不是那種玩一張圖載入一張圖的模式,我們的關卡需要一次載入完畢,記憶體相對比一張圖大,因為我們關卡的轉換需要借助位置的移動,也就是說我們的不同關卡是處在不同的位置,因此這個相機的跟隨也勢必要的。

5、對前一二的總結,並糾正錯誤,膠囊碰撞並不能決定射出射線的位置,只能影響碰撞體積,射線設定的點和所掛的元件有關,即根節點。這裡先將模型和根節點分離調整根節點的中心讓其與角色中心對齊,之後對角色的charactercontroller在後台進行調整就好了:

if (grabobject != null && rotatecomplete)

這裡是扔掉箱子後,人物膠囊碰撞框架的屬性。

else

}}

這裡是加長版膠囊,箱子的屬性不變,用人物本身的控制項成功實現了這個功能。哈哈啊哈哈哈哈

6、我想實現在3d與2d之間的轉化。網上查了一篇文章,還沒有仔細研讀

7、我想設定一關,就像是男人就下一百層一樣,不過也有一些不一樣,其中也有隨機生成的木塊和隨時間上公升的場景。角色一旦超過乙個高度就會死亡,當然這裡也會有觸發條件,我都想好了,就用整體的position來限定其橫座標就好。判斷之後再判斷是否該死亡。

8、自己找一些比較有趣的音訊

9、怎樣讓遊戲變得更加有意義,讓大家著實感受到我們參與其中。我決定設定一面牆,在通關的時候可以出現,隨著角色的走動,一張張**浮現,我們曾來過。(感覺會很簡單,建立移動的橫座標關於**旋轉的函式,當然要按照順序呼叫!!!)

2023年11月25日總結

這兩天參加了乙個數學系老師舉辦的乙個計算數學學術討論會,聽的有點疲憊。怎麼來形容那,詳細內容肯定是聽不懂的,他們涉及到的東西太過於專業化,但是處理方法,解決問題的思路其實講解的每個人所用到的都是差不多的。即使是我們這樣從未接觸過的都可以聽出這些東西,那為何他們研究了這麼多年,我想其實和acm競賽有許...

2023年11月25日開發手記

對濾波後的影象做行列投影,通過閾值得到運 像橫縱座標點集。使用水平與豎直投影演算法,投影演算法的時間複雜度為o x2 哪怕進行優化也最多可變為o xlogx 時間上無法接受。再次使用傅利葉變換?還是將目標放在輪廓點整合?使用豎直投影法的話還不如直接遍歷所有點找輪廓,這對後面進行聚類也比較方便。決定採...

2023年1月25日訓練日記

昨天的judge系統出現問題了,hahahahaha 導致做題中斷了,唉。今天對一些問題的理解 1科學計數法 概念,表示方法 2一元二次方程求解問題 解的多元化 3開關燈 開關門 問題 簡化 版 科學記數法 在科學記數法中,乙個數被寫成乙個1與10之間的實數 尾數 與乙個10的冪的積,為了得到統一的...