Пример #1
0
    // ------------------------------------------------------------------------
    // ロックオン処理.
    // ------------------------------------------------------------------------
    public void Lockon(Collider collider)
    {
        // 敵機をロックオン.
        if (collider.gameObject.tag == "Enemy")
        {
            // インスタンスIDを取得する.
            int targetId = collider.gameObject.GetInstanceID();

            // ロックオン数を加算.
            // (ロックオンが成功すれば true がかえってくる).
            bool isLockon = IncreaseLockonCount(targetId);

            if (isLockon)
            {
                // ------------------------------------------------------------
                // ロックオン
                // ------------------------------------------------------------

                // ロックオン番号を決定.
                int lockonNumber = getLockonNumber();

                if (lockonNumber >= 0)
                {
                    // ロックオンサイトの表示位置はロックオンした敵機の位置に表示.
                    Vector3    targetPosition = collider.gameObject.transform.position;
                    Quaternion tagetRotation  = new Quaternion(0f, 180f, 0f, 0f);

                    // ロックオンサイトのインスタンス生成.
                    GameObject lockonSight;
                    lockonSight = Instantiate(lockonSights[lockonNumber], targetPosition, tagetRotation) as GameObject;
                    lockonSight.SendMessage("SetLockonEnemy", collider.gameObject);

                    // ロックオンリストにロックオンした敵機を追加.
                    lockedOnEnemyIds[lockonNumber] = targetId;

                    // ロックオンしたオブジェクトを保持しておく.
                    lockedOnEnemys[lockonNumber] = collider.gameObject;

                    // ロックオンサイトを保持する.
                    lockedOnSights[lockonNumber] = lockonSight;

                    // メッセージ表示.
                    printMessage.SetMessage("LOCKED ON SOME ENEMIES.");
                    lockSlot.SetLockCount(lockonCount);
                }
            }
        }
    }
    // ------------------------------------------------------------------------
    // 锁定处理
    // ------------------------------------------------------------------------
    public void Lockon(Collider collider)
    {
        // 锁定敌机
        if (collider.gameObject.tag == "Enemy")
        {
            // 如果未锁定则进行锁定
            int targetId = collider.gameObject.GetInstanceID();

            // 累加锁定数量
            // (如果锁定成功将变为true)
            bool isLockon = IncreaseLockonCount(targetId);

            if (isLockon)
            {
                // ------------------------------------------------------------
                // 锁定
                // ------------------------------------------------------------

                // 决定锁定编号
                int lockonNumber = getLockonNumber();

                if (lockonNumber >= 0)
                {
                    // 锁定瞄准器的显示位置用于显示被锁定敌机的位置
                    Vector3    targetPosition = collider.gameObject.transform.position;
                    Quaternion tagetRotation  = new Quaternion(0f, 180f, 0f, 0f);

                    // 生成锁定瞄准器的实例
                    GameObject lockonSight;
                    lockonSight = Instantiate(lockonSights[lockonNumber], targetPosition, tagetRotation) as GameObject;
                    lockonSight.SendMessage("SetLockonEnemy", collider.gameObject);

                    // 将被锁定的敌机添加到锁定列表
                    lockedOnEnemyIds[lockonNumber] = targetId;

                    // 存储被锁定的对象
                    lockedOnEnemys[lockonNumber] = collider.gameObject;

                    // 存储锁定瞄准器
                    lockedOnSights[lockonNumber] = lockonSight;

                    // 显示消息
                    printMessage.SetMessage("LOCKED ON SOME ENEMIES.");
                    lockSlot.SetLockCount(lockonCount);
                }
            }
        }
    }