Exemple #1
0
    protected void Start()
    {
        TargetPos = TargetObject.transform;
        ballpos   = GameObject.Find("ball").transform;

        predir = new Vector3(0f, 0f, 0f);
        swing  = new List <GameObject>();

        player_swing = new GameObject("player_swing");
        player_swing.transform.parent = this.transform;

        ModelDrawer = new TrajectryDrawer(lineLength, lineWidth, dt);

        if (!fast)
        {
            StartCoroutine(SwingRecord(false));
        }
        //sound_controller = controller_list[0];
    }
    // Start is called before the first frame update
    void Start()
    {
        ModelDrawer = new TrajectryDrawer(lineLength, lineWidth, dt);
        StreamReader txtfile = new StreamReader(Application.dataPath + "/MotionLog913.txt", Encoding.UTF8);

        index = 0;
        string str = txtfile.ReadToEnd();

        file = str.Split('\n');
        while (cont)
        {
            GameObject traj_p = Instantiate(SwingHolderPrefab);
            GameObject former = new GameObject("former");
            GameObject latter = new GameObject("latter");

            former.transform.parent = traj_p.transform;
            latter.transform.parent = traj_p.transform;

            while (SetPosition())
            {
                if (UpdatePos() < 0)
                {
                    break;
                }
            }
            while (SwingStart() < 0.15f)
            {
                if (UpdatePos() < 0)
                {
                    break;
                }
            }
            //Unityは左手系→ボールのzを前にしたとき、ユーザにとって右側はx軸の正の方向
            if (SwingStart() <= 0f)
            {
                if (UpdatePos() < 0)
                {
                    break;
                }
                Destroy(traj_p);
                continue;
            }
            foreach (Transform child in this.transform)
            {
                child.gameObject.SetActive(false);
            }
            Debug.Log("swing may start");
            GameObject last;
            ModelDrawer.SetColorAndTag(new Color(1.0f, 0f, 0f, 0.1f), "TakeBack");
            ModelDrawer.setLength(this.lineLength);

            Dummy.position = TargetPos;
            Dummy.rotation = TargetRot;
            ModelDrawer.init(Dummy, former);
            while (true)
            {
                Dummy.position = TargetPos;
                Dummy.rotation = TargetRot;
                last           = ModelDrawer.drawLine(Dummy);
                if (last != null)
                {
                    break;
                }
                if (UpdatePos() < 0)
                {
                    break;
                }
                ;
            }
            if (int.Parse(last.name) <= 0)
            {
                Destroy(traj_p);
                continue;
            }
            ModelDrawer.Turn(lineLength * 2f, latter);
            Color c2 = new Color(0f, 1.0f, 0f, 0.1f);
            ModelDrawer.SetColorAndTag(c2, "DownSwing");

            while (true)
            {
                Dummy.position = TargetPos;
                Dummy.rotation = TargetRot;
                last           = ModelDrawer.drawLine(Dummy);
                if (last != null)
                {
                    break;
                }
                if (UpdatePos() < 0)
                {
                    break;
                }
            }
            if (int.Parse(last.name) <= 0)
            {
                Destroy(traj_p);
                continue;
            }

            Destroy(last);
            Debug.Log("swing ends");
            traj_p.transform.parent = this.transform;
            if (!cont)
            {
                Destroy(traj_p);
            }
        }
    }