前言
因此,过去几周我一直在 Unity Answers 论坛上讨论这个问题,但没有得到任何答复。在我看来,这将是一个相对直接的问题,所以我想知道这里是否有人可以帮助我代替那里的答案。
所以我有点进退两难。
目标
我想在我的游戏中为枪支使用继承结构。我想创建一个抽象类 (Gun),然后继承它的 Gun (Laser、Rifle、RocketLauncher) 的子类,然后创建这些武器的特定实例。目前我将它作为一个抽象类来做,因为 Gun 的不同子类实现 Shoot() 函数的方式存在很大差异。(即火箭发射器将实例化 X 火箭游戏对象,而激光可能会使用光线投射来确定即时命中)。
此外,我希望能够在玩家库存中有一个枪支列表,并且不想根据他们的活跃武器从我的玩家中添加和删除脚本。如果我可以按以下方式构建它们,那对我来说很好:
Rifle ActiveWeapon = new Rifle(parameters);
Run Code Online (Sandbox Code Playgroud)
我也不想为玩家提供有限数量的武器,但希望能够在运行时生成它们(例如作为掉落或制作),所以我也不想编写固定数量的武器脚本。
问题
我遇到的问题是我希望能够利用一些从 MonoBehaviours 派生的方法,例如:
public override void Shoot ()
{
if (CanShoot)
{
StartCoroutine(Cooldown());
Rigidbody bullet = Rigidbody.Instantiate(BulletPrefab, transform.position, transform.rotation);
... // Addforce etc.
...
}
}
public IEnumerator Cooldown()
{
CanShoot = false;
yield return new WaitForSeconds (FireRate);
CanShoot = true;
}
Run Code Online (Sandbox Code Playgroud)
显然,因为这不是 MonoBehaviour 类,所以我不能使用诸如 Instantiate 之类的函数来创建项目符号或使用 WaitForSeconds 来错开它们。
我应该如何解决这个问题?
总的来说,我真的是php和web编码的新手。我正在尝试提供通过php下载的图片。我需要什么其他代码才能实现此目的?我已经尝试过使用Google搜索,并在此处进行搜索,尽管我知道之前已经有人问过这个问题,但阅读答案却使我的经验不足。如果有人可以帮助我或指出正确的方向,将不胜感激!
public function ExportUserImage()
{
$image = $this->user->image;
header("Content-type: image/jpeg");
header("Cache-Control: no-store, no-cache");
header('Content-Disposition: attachment; filename="avatar.jpg"');
$outstream = fopen($image,'w'); // Not sure if this is right
//>>don't know what I need here<<
fclose($outstream);
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用chart.js来创建缩略图,这些缩略图将链接到包含完整图表的页面.链接页面上的完整图表看起来不错,但对于缩略图我无法正确调整大小.画布覆盖右侧区域,但图形不会垂直填充.
var data = {
labels: ['','','','','','','','','',''],
datasets: [{
data:[22,25,23,24,25,22,25,23,24,25],
backgroundColor: "rgba(54, 255, 170, 0.4)",
borderColor: "rgba(54, 255, 170, 1)",
orderWidth: 1,
}]
};
var options = {
tooltips: false,
legend: {
display:false
},
scales: {
yAxes: [{
display:false,
ticks: {
beginAtZero:true
}
}],
xAxes: [{
gridLines: {
color: "rgba(0, 0, 0, 0)",
}
}]
}
};
new Chart($("#chart-"+this.model.id), {
type: 'bar',
data: data,
options: options
});
Run Code Online (Sandbox Code Playgroud)
我已经尝试过调整画布的最小高度,但这会导致条纹模糊.有什么方法可以调整条的高度占据整个画布?
我有两个清单:
List<int> positionsThatCannotBeMovedTo =...
List<int> desiredLocations =...
Run Code Online (Sandbox Code Playgroud)
我试图删除所有无法移动到所需位置的位置以创建安全位置列表:
List<int> safePositions = new List<int>(uniquePositions);
safePositions.RemoveAll(positionsThatCannotBeMovedTo);
Run Code Online (Sandbox Code Playgroud)
然而它抛出了错误:
"Argument1:无法从'System.Collections.Generic.List'转换为'System.Predicate'
我不完全确定这意味着什么,或者我如何滥用这个功能.有人能帮我解释一下吗?我这样做是因为这个问题的答案: