コード例 #1
0
    void Update()
    {
        // Movement
        float xAxis = Input.GetAxis("Horizontal");
        //z-axis is y-axis
        float zAxis = Input.GetAxis("Vertical");

        parentObject.transform.Translate(Vector3.forward * zAxis * moveSpeed * Time.deltaTime, Space.Self);

        // Rotation
        Vector3 rot = parentObject.transform.rotation.eulerAngles;

        rot.y += xAxis * rotationSpeed * Time.deltaTime;
        parentObject.transform.rotation = Quaternion.Euler(rot);


        /*
         * Controls
         */
        // Possession
        if (Input.GetMouseButton(0))
        {
            Ray        ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            RaycastHit hit;
            if (Physics.Raycast(ray, out hit, Mathf.Infinity))
            {
                ControllableEntity c = hit.transform.root.GetComponentInChildren <ControllableEntity>();
                if (c != null)
                {
                    if (c.GetComponent <MobController>().isAIEnabled)
                    {
                        // Start of Posesssion
                        isPossessing = true;
                        targetEnemy  = c;

                        GameController.GetInstance.timerPaused = true;
                    }
                }
            }
        }

        if (isPossessing)
        {
            Possess(targetEnemy);
        }
    }