// Update is called once per frame void Update() { if (Input.GetMouseButtonDown(0)) { ray = mainCamera.ScreenPointToRay(Input.mousePosition); RaycastHit hit; if (Physics.Raycast(ray, out hit, Mathf.Infinity)) { GameObject game = hit.collider.gameObject; ItemAcceptor item = game.GetComponent <ItemAcceptor>(); if (item != null) { Visit(item); } DoorAcceptor door = game.GetComponent <DoorAcceptor>(); if (door != null) { Visit(door); } ActorAcceptor actor = game.GetComponent <ActorAcceptor>(); if (actor != null) { Visit(actor); } } } }
public override void Visit(ActorAcceptor acceptor) { acceptor.Accept(this); Debug.Log("会話モードへ移行する処理"); }
public abstract void Visit(ActorAcceptor acceptor);