eyelocation其实是在角色actor里面设置的一个基准位置,可以自己修改。
为了修改成从摄像机中射出射线,所以需要重写父类的GetPawnViewLocation。
CameraComp->GetComponentLocation()
eyelocation其实是在角色actor里面设置的一个基准位置,可以自己修改。
为了修改成从摄像机中射出射线,所以需要重写父类的GetPawnViewLocation。
CameraComp->GetComponentLocation()
zai
这里的判断重复了,如果Amount>1成立,那么CanBeStack必然成立。但是CanBeStack成立,Amount>1未必成立。
所以,最后一个CanBeStack
SearchEmptySlot函数可以精简一下:
if (Health-Damage<=0.0f)
{
Health = 0.0f;
}
else
{
Health -= Damage;
}
等价于:
FMath::Clamp(Health-Damage,0.0f,MaxHealth);
所以写成:
Health -= Damage;
if (Health<=0.0f)
{
Health = 0.0f;
//Todo:Died();
}
return Health;
在虚幻的C++代码中使用UMG引用时,需要在项目Build.cs加上, "UMG", "Slate", "SlateCore"
其实头文件可以快捷键添加,需要安装Unreal VS和Visual
编辑器控台:
t.MaxFPS 帧率
强制设置帧率
UFUNCTION
UPROPERTY
BlueprintReadWrite
BlueprintCallable
U mean unreal
BlueprintReadOnly
UFUNCTION
UPROPERTY
BlueprintReadWrite
BlueprintCallable
U mean unreal
这几节听得很吃力啊!
Shader调试Window-Anaysis-FrameDebugger
UPROPERTY(参数)
参数:
1.VisibleAnywhere:可在所有地方访问
2.EditInstanceOnly:只在实例中修改
这个好,麻烦,。。
UPROPERTY宏参数作用
VisibleAnywhere:
VisibleInstanceOnly:
VisibleDefaultsOnly:
EditAnywhere:
EditInstanceOnly:
EditDefaultsOnly:
如果有同学这里运行屏幕和控制台都没有打印出来的话 ,重启下引擎就好了
从PlayerInputComponent读取BindAxis没有出现下拉框的解决方法:
记得在构造函数里把
PrimaryActorTick.bCanEverTick = true;
不然Tick执行不了