示例#1
0
        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);
                    }
                }
            }
        }
示例#2
0
        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;
            });
        }
示例#3
0
 private void Awake()
 {
     _mallardDuck = Instantiate(_mallardDuck);
     _rubberDuck  = Instantiate(_rubberDuck);
     _redHeadDuck = Instantiate(_redHeadDuck);
 }
 public void Process(DuckBase duck)
 {
     duck.StopSwimming();
 }