示例#1
0
 // Start is called before the first frame update
 void Start()
 {
     arrowUps        = play.GetComponentInChildren <ShootArrow>();
     healthUps       = play.GetComponent <Player>();
     moveUps         = play.GetComponent <PlayerMove>();
     maximumPowerups = _arrowMax + _damageMax + _drawMax + _drawRateMax + _healthDelayMax + _healthMax + _healthRateMax + _heightMax + _jumpMax + _reloadMax + _SpeedMax + 4;
 }
    private GameObject CreateShootArrow(int _start, int _end, Color _color)
    {
        GameObject go = GameObject.Instantiate <GameObject>(Resources.Load <GameObject>("ShootArrow"));

        ShootArrow arrow = go.GetComponent <ShootArrow>();

        go.transform.SetParent(arrowContainer, false);

        MapUnit start = mapUnitDic[_start];

        MapUnit end = mapUnitDic[_end];

        go.transform.position = (start.transform.position + end.transform.position) * 0.5f;

        float angle = Mathf.Atan2(end.transform.position.y - start.transform.position.y, end.transform.position.x - start.transform.position.x);

        Quaternion q = new Quaternion();

        q.eulerAngles = new Vector3(0, 0, angle * 180 / Mathf.PI);

        go.transform.localRotation = q;

        arrow.SetColor(_color);

        return(go);
    }
示例#3
0
    public static Action getAction(Vector3 pos, float speed)
    {
        ShootArrow action = ScriptableObject.CreateInstance <ShootArrow>();

        action.factory    = Factory_Arrow.getInstance();
        action.arrow      = action.factory.getProduct();
        action.gameobject = action.arrow.gameobject;
        action.gameobject.transform.position = pos;
        action.gameobject.GetComponent <Rigidbody>().velocity = (new Vector3(0, 0, 200) - pos).normalized * speed;
        return(action);
    }
示例#4
0
    protected override void Awake()
    {
        base.Awake();

        m_board         = Object.FindObjectOfType <Board>().GetComponent <Board>();
        m_enemyMover    = GetComponent <EnemyMover>();
        m_enemySensor   = GetComponent <EnemySensor>();
        m_enemyAttack   = GetComponent <EnemyAttack>();
        m_skeletonArrow = GetComponent <ShootArrow>();

        godMode = Object.FindObjectOfType <GodModeManager>();
    }
示例#5
0
    private void CreateArrowAnimation(GameObject combatant, GameObject target, Vector3 dif)
    {
        GameObject arrowObj = Instantiate(arrow);
        ShootArrow shootArrow = arrowObj.GetComponent <ShootArrow>();
        int        x, z;

        ScreenToLogical(combatant.transform.position.x, combatant.transform.position.z, out x, out z);
        shootArrow.startX = x;
        shootArrow.startY = z;
        ScreenToLogical(target.transform.position.x, target.transform.position.z, out x, out z);
        shootArrow.targetX = x;
        shootArrow.targetY = z;
    }
示例#6
0
    private void OnTriggerEnter2D(Collider2D collision)
    {
        if (collision.gameObject.tag == "ArrowHit")
        {
            ShootArrow arrow = collision.transform.GetComponent <ShootArrow>();

            if (arrow != null)
            {
                arrow.stopMoving = true;
            }
            else
            {
                Debug.Log("Error on shoot - no object found");
            }
        }
    }
示例#7
0
    // Update is called once per frame
    new void Update()
    {
        if (isReady)
        {
            Action ac = CountBack.getAction();
            ac.callback = this;
            RunAction(ac);
            isReady = false;
        }

        /*
         * if (Input.GetMouseButton(0)) {
         *
         *  Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
         *  Debug.Log(Input.mousePosition);
         *  RaycastHit hitInfo;
         *
         *  if (Physics.Raycast(ray, out hitInfo)) {
         *      GameObject hitObj = hitInfo.collider.gameObject;
         *      if (hitObj.CompareTag("UFO")) {
         *          UFO ufo = Factory_UFO.getInstance().getProduct(hitObj.GetInstanceID());
         *          if (ufo.canHit) {
         *              ufo.canHit = false;
         *              scorer.addScore(ufo.Score);
         *          }
         *      }
         *  }
         * }*/

        if (Input.GetMouseButtonDown(0))
        {
            const int ARROW_WIDTH  = 300; // 箭射出的初始范围
            const int ARROW_HEIGHT = 70;
            Vector3   pos          = new Vector3(
                Input.mousePosition.x / Screen.width * ARROW_WIDTH - ARROW_WIDTH / 2,
                Input.mousePosition.y / Screen.height * ARROW_HEIGHT,
                0
                );
            RunAction(ShootArrow.getAction(pos, 500f));
        }
        base.Update();
    }
示例#8
0
    // Use this for initialization
    void Start()
    {
        rb2d = GetComponent<Rigidbody2D>();
        bowT = GameObject.FindGameObjectWithTag("Bow").transform;
        stPos = GameObject.FindGameObjectWithTag("Bow").transform.FindChild("MidPos").transform;
        sa = GameObject.FindGameObjectWithTag("Bow").GetComponentInChildren<ShootArrow>();
        transform.position = stPos.position + new Vector3(arrowLen, 0, 0);
        shootFlag = false;
        collisionFlag = false;

        water_drip_1 = GameObject.FindGameObjectWithTag("water_drip_1");
        water_drip_2 = GameObject.FindGameObjectWithTag("water_drip_2");
        water_drip_3 = GameObject.FindGameObjectWithTag("water_drip_3");

        if (water_drip_1 && water_drip_2 && water_drip_3) {
            water_drip_1.SetActive (false);
            water_drip_2.SetActive (false);
            water_drip_3.SetActive (false);
        }
    }
    void Start()
    {
        /// Initializations
        soundFX           = GetComponent <audioPlay>();
        swordAoE          = GameObject.Find("SwordColl").GetComponent <SphereCollider> ();
        cameraShake.shake = 0;
        isDead            = false;
        stats             = GameObject.Find("DungeonMaster").GetComponent <DungeonMaster> ().playerStats;
        ui              = GameObject.FindGameObjectWithTag("UI").GetComponent <uiDisplay> ();
        shootArrow      = gameObject.GetComponentInChildren <ShootArrow> ();
        shootMultiArrow = gameObject.GetComponentInChildren <ShootMultiArrow> ();
        changeWeapon(0);
        controller = this.gameObject.GetComponent <CharacterController> ();
        ReceiverDamage receiver = GetComponent <ReceiverDamage> ();

        if (receiver == null)
        {
            print("RECEIVER IS NULL");
        }
        else
        {
            receiver.setStats(stats);
        }

        SenderDamage[] sender = GetComponentsInChildren <SenderDamage> ();
        if (sender != null)
        {
            foreach (SenderDamage sd in sender)
            {
                Debug.Log(sd.gameObject.name);
                sd.setStats(stats);
            }
        }
        ui.UpdateHealth(stats.getCurHealth(), stats.getMaxHealth());
        cc = gameObject.GetComponent <CharacterController> ();
        rb = gameObject.GetComponent <Rigidbody> ();

        concealed = false;
    }
示例#10
0
 // Use this for initialization
 void Start()
 {
     stPos = transform.rotation;
     sa = GetComponentInChildren<ShootArrow>();
 }
示例#11
0
 // Use this for initialization
 void Start()
 {
     stPos = transform.localPosition;
     sa = GetComponent<ShootArrow>();
 }