public void ResetPointOfView()
        {
            if (!isInPersonalCamera)
            {
                return;
            }

            // SetPointOfViewの時に記録した位置に戻す、CharacterControllerを再度有効化
            if (!recordedPosition.HasValue || !recordedRotation.HasValue)
            {
                return;
            }

            if (enterDeviceType == EnterDeviceType.VR)
            {
                PlayerTransform.SetPositionAndRotation(recordedPosition.Value, recordedRotation.Value);
            }
            else
            {
                CameraTransform.SetPositionAndRotation(recordedPosition.Value, recordedRotation.Value);
            }

            playerController.ActivateCharacterController(true);
            isInPersonalCamera = false;
        }
Esempio n. 2
0
    // Method to update transform.

    private void UpdateTransform()
    {
        PlayerTransform currentTransform = ((PlayerTransformHandler)_controller.OperationHandlers[2]).PlayerTransforms[_networkInterface.PeerId];

        if (currentTransform.isUpdated)
        {
            transform.position    = new Vector3(currentTransform.xPosition, currentTransform.yPosition, currentTransform.zPosition);
            transform.eulerAngles = new Vector3(currentTransform.xRotation, currentTransform.yRotation, currentTransform.zRotation);

            currentTransform.isUpdated = false;
        }
    }
    public void UpdateTransformToServer(Vector3 p, Vector3 r)
    {
        PlayerTransform playerTransform = new PlayerTransform();

        playerTransform.position = p;
        playerTransform.rotation = r;

        string jsonString = JsonUtility.ToJson(playerTransform);

        Byte[] sendBytes = Encoding.ASCII.GetBytes(jsonString);
        udp.Send(sendBytes, sendBytes.Length);
    }
Esempio n. 4
0
 public void UpdateTransform(PlayerTransform transform)
 {
     lock (playerTransforms)
     {
         if (playerTransforms.Transforms.ContainsKey(transform.Account))
         {
             playerTransforms.Transforms[transform.Account] = transform.Trans;
         }
         else
         {
             playerTransforms.Transforms.Add(transform.Account, transform.Trans);
         }
     }
 }
Esempio n. 5
0
        // updates player position and the current tile variable
        private void UpdatePlayerPosition(Tile[,] tiles, int tileCoordX, int tileCoordY)
        {
            if (this.GetComponent <BoxCollider>() != null)
            {
                CurrentTile = tiles[tileCoordX, tileCoordY];

                Transform tileTransform = CurrentTile.instance.GetComponent <Transform>();
                Bounds    playerBounds  = this.GetComponent <BoxCollider>().bounds;
                Bounds    tileBounds    = CurrentTile.instance.GetComponent <BoxCollider>().bounds;
                // put player at center of the tile
                Vector3 playerPos = new Vector3(tileTransform.position.x, PlayerTransform.position.y, tileTransform.position.z);
                PlayerTransform.SetPositionAndRotation(playerPos, Quaternion.identity);
            }
        }
Esempio n. 6
0
        void Start()
        {
            var availableColliders = PlayerTransform.GetTransform().gameObject.GetComponentsInChildren <BoxCollider2D>();

            foreach (var collider in availableColliders)
            {
                if (collider.tag == CharacterColliderTag)
                {
                    this.collider = collider;
                    break;
                }
            }

            castRays = CastRays.GetInstance();
        }
Esempio n. 7
0
        // initializes the current tile of the player and sets the position of the player to the center of the starting tile
        private void SetPlayerStartPos()
        {
            if (this.GetComponent <BoxCollider>() != null)
            {
                // init starting location
                this.CurrentTile = TileMap.tiles[this.startX, this.startY];

                Transform tileTransform = CurrentTile.instance.GetComponent <Transform>();
                Bounds    playerBounds  = this.GetComponent <BoxCollider>().bounds;
                Bounds    tileBounds    = CurrentTile.instance.GetComponent <BoxCollider>().bounds;
                // put player at center of the tile
                Vector3 playerPos = new Vector3(tileTransform.position.x, CalculatePlayerYPos(playerBounds, tileBounds, PlayerTransform.localScale.y), tileTransform.position.z);
                PlayerTransform.SetPositionAndRotation(playerPos, Quaternion.identity);
            }
        }
Esempio n. 8
0
        public void UseSkill(Vector2 dirVector, Teams teamTag, Vector2 playerSpeed)
        {
            //dirVector = GetTeleportCoords(dirVector);

            var bodyColliderBounds = collider.bounds;
            var rectangleShape     = new RectangleF(bodyColliderBounds.center.x, bodyColliderBounds.center.y, bodyColliderBounds.size.x - skinWidth.x, bodyColliderBounds.size.y - skinWidth.y);

            if ((GetVectorSquareCoords(Camera.main.ScreenToWorldPoint(playerSpeed)))
                - GetVectorSquareCoords(PlayerTransform.GetTransform().position) <= SkillValue * SkillValue)
            {
                Vector2 movementVector;
                List <LaserPartData> placeholder;   //For now, simply stores all the chunks of the path.
                (placeholder, movementVector) = castRays.ProjectRectangle(rectangleShape, dirVector, TeleportRange, checkedLayers);

                Vector3 position = PlayerTransform.GetTransform().position + new Vector3(movementVector.x, movementVector.y, 0);
                PlayerTransform.GetTransform().position = position;
            }
            StartSkillCD();
        }
Esempio n. 9
0
    // Update is called once per frame
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.A))
        {
            ISaver saver = new SaverAsJson();
            //saver.Save(new PlayerData("Mioshi", 5), "playerData");
            saver.Save(new PlayerTransform(transform.position, transform.rotation, transform.localScale), "PlayerTransform");
        }

        if (Input.GetKeyDown(KeyCode.B))
        {
            ILoader loader = new LoaderFromJson();
            //player = loader.Load<PlayerData>("playerData");
            playerTransform      = loader.Load <PlayerTransform>("PlayerTransform");
            transform.position   = playerTransform.Position;
            transform.rotation   = playerTransform.Rotation;
            transform.localScale = playerTransform.Scale;
        }
    }
Esempio n. 10
0
    public override void OnHandleResponse(OperationResponse response)
    {
        Guid peerId = new Guid((byte[])response.Parameters[1]);

        if (_playerTransforms.ContainsKey(peerId))
        {
            PlayerTransform playerTransform = _playerTransforms[peerId];

            playerTransform.xPosition = (float)response.Parameters[2];
            playerTransform.yPosition = (float)response.Parameters[3];
            playerTransform.zPosition = (float)response.Parameters[4];

            playerTransform.xRotation = (float)response.Parameters[5];
            playerTransform.yRotation = (float)response.Parameters[6];
            playerTransform.zRotation = (float)response.Parameters[7];

            playerTransform.isUpdated = true;

            _playerTransforms[peerId] = playerTransform;
        }
    }
        public void SetPointOfView(Transform targetPoint)
        {
            isInPersonalCamera = true;
            // 位置を記録した後PersonalCameraの位置に移動、CharacterControllerを無効化する
            if (enterDeviceType == EnterDeviceType.VR)
            {
                recordedPosition = PlayerTransform.position;
                recordedRotation = PlayerTransform.rotation;
                // OpenVRのカメラの高さがそのまま視点の高さになるので、 見せたい視点の高さ(y) - OpenVRによるカメラの高さ(local y)をしてやることで、視点の視線の高さにする
                var targetPosition = new Vector3(targetPoint.position.x, targetPoint.position.y - CameraTransform.localPosition.y, targetPoint.position.z);
                PlayerTransform.SetPositionAndRotation(targetPosition, targetPoint.rotation);
            }
            else
            {
                recordedPosition = CameraTransform.position;
                recordedRotation = CameraTransform.rotation;
                CameraTransform.SetPositionAndRotation(targetPoint.position, targetPoint.rotation);
            }

            playerController.ActivateCharacterController(false);
        }
Esempio n. 12
0
        public RemotePlayerModel(ushort playerId, string username)
        {
            // Spawn remote player model by cloning the player prefab and replacing local player script by remote player ones.
            string playerPrefabPath = LDB.players.Select(PLAYER_PROTO_ID).PrefabPath;

            if (playerPrefabPath != null)
            {
                PlayerTransform      = Object.Instantiate(Resources.Load <Transform>(playerPrefabPath));
                PlayerModelTransform = PlayerTransform.Find("Model");

                // Remove local player components
                Object.Destroy(PlayerTransform.GetComponent <PlayerFootsteps>());
                Object.Destroy(PlayerTransform.GetComponent <PlayerEffect>());
                Object.Destroy(PlayerTransform.GetComponent <PlayerAudio>());
                Object.Destroy(PlayerTransform.GetComponent <PlayerAnimator>());
                Object.Destroy(PlayerTransform.GetComponent <PlayerController>());
                PlayerTransform.GetComponent <Rigidbody>().isKinematic = true;

                // Add remote player components
                Movement = PlayerTransform.gameObject.AddComponent <RemotePlayerMovement>();
                Animator = PlayerTransform.gameObject.AddComponent <RemotePlayerAnimation>();
                Effects  = PlayerTransform.gameObject.AddComponent <RemotePlayerEffects>();
            }

            PlayerTransform.gameObject.name = $"Remote Player ({playerId})";

            PlayerInstance = new global::Player();
            MechaInstance  = new Mecha();
            AccessTools.Property(typeof(global::Player), "mecha").SetValue(PlayerInstance, MechaInstance, null);
            MechaInstance.Init(PlayerInstance);

            //Fix MechaDroneRenderers
            AccessTools.Field(typeof(MechaDroneRenderer), "mat_0").SetValue(MechaInstance.droneRenderer, new Material(Configs.builtin.mechaDroneMat.shader));
            Material mat = (Material)AccessTools.Field(typeof(MechaDroneRenderer), "mat_0").GetValue(MechaInstance.droneRenderer);

            MethodInvoker.GetHandler(AccessTools.Method(typeof(Material), "CopyPropertiesFromMaterial", new System.Type[] { typeof(Material) })).Invoke(mat, Configs.builtin.mechaDroneMat);

            PlayerId = playerId;
            Username = username;
        }
Esempio n. 13
0
 public override void Use()
 {
     PlayerTransform.GetComponent <PlayerControl.PlayerPickupUse>().PickupPutdown();
 }
Esempio n. 14
0
        //private static Dictionary<string, Transform> Transforms { get; set; } = new Dictionary<string, Transform>();

        //private static void UpdateTransform(PlayerTransform transform)
        //{
        //    if (Transforms.ContainsKey(transform.Account))
        //        Transforms[transform.Account] = transform.UserTransform;
        //    else
        //        Transforms.Add(transform.Account, transform.UserTransform);
        //}


        public void UpdateTransform(PlayerTransform transform)
        {
            DataCenter.Instance.UpdateTransform(transform);

            Broadcast(DataCenter.Instance.GetTransformsCopy());
        }
Esempio n. 15
0
 public override void Use()
 {
     PlayerTransform.GetComponent <PlayerControl.PlayerPickupUse>().PickupPutdown();
     PickupItem.itemRigidbody.AddForce((CameraFocusTransform.rotation * throwForce), ForceMode.VelocityChange);
     StartCoroutine(CountDown());
 }