我正在为游戏制作能力,我需要添加动画(我知道该怎么做)。我的问题是我需要一种方法来引用动画而不分配特定的动画。我有一个基类和一个能力的基础逻辑(这是我需要一般参考,因为一个能力确实需要一个动画)然后当我想要一个能力我创建一个继承基础的新类,然后创建这种方式的能力(我将分配动画的地方)。
//Default logic for abilities
public virtual void abilityEffects(hero caster, hero target){
this.caster = caster;
this.target = target;
float DMG = damage * this.caster.heroAttPow;
//Ability should not be on cooldown the first time it is used
if (firstUse == true)
{
//sets the total damage to take into account the ability damage plus the hero power
//need general reference to animation here
//when animation is over, deal damage
this.target.HP -= DMG;
firstUse = false;
//cooldown begins
SpellStart = Time.time;
}
if(firstUse == false)
{
if (Time.time > SpellStart + SpellCooldown)
{
//sets the total damage to take into account the ability damage plus the hero power
//need general reference to animation here
//when animation is over, deal damage
this.target.HP -= DMG;
//cooldown begins
SpellStart = Time.time;
}
}
}
答案 0 :(得分:0)
ArrayList<BarEntry> entries1 = new ArrayList<BarEntry>();
ArrayList<BarEntry> entries2 = new ArrayList<BarEntry>();
for (int index = 0; index < itemcount; index++) {
entries1.add(new BarEntry(0, getRandom(25, 25)));
// stacked
entries2.add(new BarEntry(0, new float[]{getRandom(13, 12), getRandom(13, 12)}));
}
BarDataSet set1 = new BarDataSet(entries1, "Bar 1");
set1.setColor(Color.rgb(60, 220, 78));
set1.setValueTextColor(Color.rgb(60, 220, 78));
set1.setValueTextSize(10f);
set1.setAxisDependency(YAxis.AxisDependency.LEFT);
BarDataSet set2 = new BarDataSet(entries2, "");
set2.setStackLabels(new String[]{"Stack 1", "Stack 2"});
set2.setColors(new int[]{Color.rgb(61, 165, 255), Color.rgb(23, 197, 255)});
set2.setValueTextColor(Color.rgb(61, 165, 255));
set2.setValueTextSize(10f);
set2.setAxisDependency(YAxis.AxisDependency.LEFT);
float groupSpace = 0.06f;
float barSpace = 0.02f; // x2 dataset
float barWidth = 0.45f; // x2 dataset
// (0.45 + 0.02) * 2 + 0.06 = 1.00 -> interval per "group"
BarData d = new BarData(set1);
d.setBarWidth(barWidth);
// make this BarData object grouped
d.groupBars(0, groupSpace, barSpace); // start at x = 0
控制您的所有对象动画和状态,如果它附加到您的Animator Component
,您可以像这样获得对它的引用
gameobject
如果您愿意,您的班级也可以是public class player: MonoBehaviour {
public Animator anim;
public void Start() {
anim = GetComponent<Animator>();
}
}
,只需调用子类中基类的开头即可获得对abstract
的引用
animator component