void Update() { if (Input.GetMouseButtonDown(0)) { RaycastHit hit; Ray ray = Camera.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out hit)) { if (hit.collider.GetComponent <DuckBase>()) { DuckBase duck = hit.collider.GetComponent <DuckBase>(); DuckInfoView.Instance.Open(duck); } } } }
public void Open(DuckBase duck) { gameObject.SetActive(true); _changeButton.onClick.RemoveAllListeners(); _duckName.text = "Duck Name : " + duck.Name; _duckType.text = "Duck Type : " + duck.DuckType; _flyType.text = "Fly Type : " + duck.GetFlyBehavior().GetType().Name; _changeButton.onClick.AddListener(() => { var newFlyBehavior = _flyBehaviours.Skip(Random.Range(0, 2)) .FirstOrDefault(s => s.GetType() != duck.GetFlyBehavior().GetType()); duck.SetFlyBehavior(newFlyBehavior); _flyType.text = "Fly Type : " + duck.GetFlyBehavior().GetType().Name; }); }
private void Awake() { _mallardDuck = Instantiate(_mallardDuck); _rubberDuck = Instantiate(_rubberDuck); _redHeadDuck = Instantiate(_redHeadDuck); }
public void Process(DuckBase duck) { duck.StopSwimming(); }