Creating an object adapter class
An object adapter is almost exactly the same as a class adapter, but with the added wrapper around a concrete adaptee reference instead of subclassing – in our case, a private TeleportController
object instead of inheriting from TeleportController
. To see this in action, create a new C# script in the Scripts folder, name it TeleportObjectAdapter
, and update its code to match the following snippet, which uses the wrapped adaptee object to execute the underlying adaptee logic:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
// 1
public class TeleportObjectAdapter : MonoBehaviour, IController
{
public float hoverHeight = 3;
private bool _isLevitating;
// 2
private TeleportController _adaptee;
// 3
void Start()
{
_adaptee = this.GetComponent<TeleportController>();
}
void Update()
{
_isLevitating = Input.GetKey(KeyCode.Space);
}
public void Move...