Beispiel #1
0
    // Use this for initialization
    void Start()
    {
        // 選択中のキャラクター番号
        int nSelCharactor = SettingManager.LoadSelectCharactor();

        //nSelCharactor = 29;

        walkSpeed = walkSpeedArray[nSelCharactor];

        mChangeChar = GetComponent <ChangeCharactor> ();
        mChangeChar.Change(nSelCharactor);

        mCharactor          = mChangeChar.GetCharactor(nSelCharactor);
        characterController = mCharactor.GetComponent <CharacterController> ();
        animator            = mCharactor.GetComponent <Animator> ();
//		joystick = GameObject.Find("Joystick").GetComponent <Joystick> ();
//		RightJoystick = GameObject.Find("RightJoystick").GetComponent <Joystick> ();

        int value = Random.Range(0, 5);

        Vector3 pos = mCharactor.transform.position;

        pos.x = startPos[value, 0];
        pos.y = startPos[value, 1];
        pos.z = startPos[value, 2];
        mCharactor.transform.position = pos;

        //StartCoroutine("CheckForDeletedParticles");
    }
Beispiel #2
0
    // Update is called once per frame
    void LateUpdate()
    {
        if (!target)
        {
            int        nSelCharactor = SettingManager.LoadSelectCharactor();
            GameObject charactor     = ChangeChar.GetCharactor(nSelCharactor);
            target = charactor.transform;
        }

        // Early out if we don't have a target
        if (!target)
        {
            return;
        }

        // Calculate the current rotation angles
        var wantedRotationAngle = target.eulerAngles.y;
        var wantedHeight        = target.position.y + height;

        var currentRotationAngle = transform.eulerAngles.y;
        var currentHeight        = transform.position.y;

        // Damp the rotation around the y-axis
        currentRotationAngle = Mathf.LerpAngle(currentRotationAngle, wantedRotationAngle, rotationDamping * Time.deltaTime);

        // Damp the height
        currentHeight = Mathf.Lerp(currentHeight, wantedHeight, heightDamping * Time.deltaTime);

        // Convert the angle into a rotation
        var currentRotation = Quaternion.Euler(0, currentRotationAngle, 0);

        // Set the position of the camera on the x-z plane to:
        // distance meters behind the target
        transform.position  = target.position;
        transform.position -= currentRotation * Vector3.forward * distance;

        // Set the height of the camera
        transform.position = new Vector3(transform.position.x, currentHeight, transform.position.z);

        // Always look at the target
        transform.LookAt(target);
        transform.position += currentRotation * Vector3.forward * distance * target_distance;
    }