5-配置敌人

敌人不需要从鼠标键盘获取输入,不需要相机,但是现在的第三人称控制器与这两个类强关联,必须重新写一个控制非玩家操控的人物。动作系统也是与第三人称控制器强关联的。

输入倒是好处理,主要还是处理相机。

我们定义了IThirdPersonCharactorController来定义几个敌人和玩家共同需要的函数。

1
2
3
4
5
6
7
8
9
public interface IThirdPersonrController  
{
public void Init();
public void ContorlMoveRotate(float delta, MotionInfo info);
public void ActionMoveRotate(float delta, MotionInfo info);
public void EnterAction();
public void OnLateUpdate(float deltaTime);
public void OnUpdate(float deltaTime);
}

Read More

4-规范文件目录

根目录下可以放置第三方包,比如AE_SkillEditor_Plus

Art: 导入第三方的资源文件,不得直接使用,需要复制到GameAssets对应文件夹下

GameAssets: 游戏资源文件,需要在游戏发布打包为AB,存放游戏所需的动画、材质、纹理、模型、配置文件等

Scenes: 场景目录,我们的场景文件放在这个目录中,包括场景的Lighting灯光烘焙数据、Navigation导航数据等

Scripts: 脚本目录,我们的c#游戏脚本放在这个目录中,注意,如果是编辑器工具类的c#脚本,则放在Editor目录中。

Read More

1143. 最长公共子序列

总体思路还是718. 最长重复子数组,一图胜千言,但是本题是子序列,也就是说可以不连续,本题不采用text1[i] text2[j] 结尾,因为是求子序列不合适。

Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Solution {
public:
int longestCommonSubsequence(string text1, string text2) {
vector<vector<int>> dp(text1.size(), vector<int>(text2.size(), 0));
for(int i=0;i<text1.size();i++) {
for(int j=0;j<text2.size();j++) {
if(i>0&&j>0&&text1[i]==text2[j]) dp[i][j]=dp[i-1][j-1]+1;
else if(text1[i]==text2[j]) dp[i][j]=1;
else if(i>0&&j>0) dp[i][j]=max(dp[i-1][j],dp[i][j-1]);
else if(i>0) dp[i][j]=dp[i-1][j];
else if(j>0) dp[i][j]=dp[i][j-1];
}
}
return dp[text1.size()-1][text2.size()-1];
}
};

2024年4月30日

晚上,与同学看《飞驰人生二》,五一前夕,劳动节大家或者回家或者出去玩了,但是我可能会过一个真正的劳动节。

剧末,想起《飞驰人生》已经是四五年前的电影,因为阑尾炎,有幸给自己放了个小假,在病床上看完。看剧名,总会想起《像少年啦飞驰》。

初中,同学带着我看韩寒的书,他很有趣,我也乐意跟他玩。几乎所有韩寒的书他都买了,所以我都是看他的书,隔上那么几日,我们都会去书店看看(因为学校的书店,像韩寒的书,都是跟老板问了,才会去进货,所以没有韩寒之前出的所有书),有没有新的书,可是后来也没有新书。

初中,2015年,总感觉非常遥远,这九年。

我也有作家梦,小学阶段异常强烈,初中逐渐消退,高中深知自己是废物。

Read More