public virtual Vector3 CalculateInitial(TargetUnion target, Cast context) { Vector3 point = context.CastBeginPoint; point += new Vector3(0, 1, 0); return(point); }
void SetTarget(TargetUnion target) { switch (target.Type) { case TargetType.Point: Set(target.Point); break; case TargetType.Targetable: Set(target.Targetable); break; case TargetType.Character: Set(target.Character); break; } }
public static Projectile Make(GameObject prefab, ProjectileController controller, Cast context, TargetUnion target) { GameObject obj = (GameObject)Instantiate(prefab, controller.CalculateInitial(target, context), Quaternion.identity); Projectile m = obj.AddComponent <Projectile>(); m._context = context; m._controller = controller; m.SetTarget(target); m._controller.Set(m); return(m); }