i need help with my scipt ( photon mobile)!!!!!
I want to help. I need to convert this player movemnt script and this player shotonig to mobile this is plugin https://github.com/tim-hub/Survival-Shooter-Mobile Which is used Excuse me i do not speak English well
using UnityEngine; using UnitySampleAssets.CrossPlatformInput;
public class PlayerMovement : Photon.MonoBehaviour { public float speed = 6f; // The speed that the player will move at.
Vector3 movement; // The vector to store the direction of the player's movement.
Animator anim; // Reference to the animator component.
Rigidbody playerRigidbody; // Reference to the player's rigidbody.
if !MOBILE_INPUT
int floorMask; // A layer mask so that a ray can be cast just at gameobjects on the floor layer. float camRayLength = 100f; // The length of the ray from the camera into the scene. #endif
bool keyboardDisabled = false;
int IsWalkingHash = Animator.StringToHash ("IsWalking");
float origSpeed;
void Awake ()
{
origSpeed = speed;
if !MOBILE_INPUT
floorMask = LayerMask.GetMask ("Floor");
endif
anim = GetComponent <Animator> ();
playerRigidbody = GetComponent <Rigidbody> ();
}
void FixedUpdate ()
{
if (!keyboardDisabled) {
// Store the input axes.
float h = CrossPlatformInputManager.GetAxisRaw ("Horizontal");
float v = CrossPlatformInputManager.GetAxisRaw ("Vertical");
// Move the player around the scene.
Move (h, v);
// Animate the player.
Animating (h, v);
}
// Turn the player to face the mouse cursor.
Turning ();
}
void Move (float h, float v)
{
// Set the movement vector based on the axis input.
movement.Set (h, 0f, v);
// Normalise the movement vector and make it proportional to the speed per second.
movement = movement.normalized * speed * Time.deltaTime;
// Move the player to it's current position plus the movement.
playerRigidbody.MovePosition (transform.position + movement);
}
void Turning ()
{
if !MOBILE_INPUT
// Create a ray from the mouse cursor on screen in the direction of the camera.
Ray camRay = Camera.main.ScreenPointToRay (Input.mousePosition);
// Create a RaycastHit variable to store information about what was hit by the ray.
RaycastHit floorHit;
// Perform the raycast and if it hits something on the floor layer...
if (Physics.Raycast (camRay, out floorHit, camRayLength, floorMask)) {
// Create a vector from the player to the point on the floor the raycast from the mouse hit.
Vector3 playerToMouse = floorHit.point - transform.position;
// Ensure the vector is entirely along the floor plane.
playerToMouse.y = 0f;
// Create a quaternion (rotation) based on looking down the vector from the player to the mouse.
Quaternion newRotatation = Quaternion.LookRotation (playerToMouse);
// Set the player's rotation to this new rotation.
playerRigidbody.MoveRotation (newRotatation);
}
else
Vector3 turnDir = new Vector3(CrossPlatformInputManager.GetAxisRaw("Mouse X") , 0f , CrossPlatformInputManager.GetAxisRaw("Mouse Y"));
if (turnDir != Vector3.zero)
{
// Create a vector from the player to the point on the floor the raycast from the mouse hit.
Vector3 playerToMouse = (transform.position + turnDir) - transform.position;
// Ensure the vector is entirely along the floor plane.
playerToMouse.y = 0f;
// Create a quaternion (rotation) based on looking down the vector from the player to the mouse.
Quaternion newRotatation = Quaternion.LookRotation(playerToMouse);
// Set the player's rotation to this new rotation.
playerRigidbody.MoveRotation(newRotatation);
}
endif
}
void Animating (float h, float v)
{
// Create a boolean that is true if either of the input axes is non-zero.
bool walking = h != 0f || v != 0f;
// Tell the animator whether or not the player is walking.
anim.SetBool (IsWalkingHash, walking);
}
void OnPlayerDead ()
{
anim.SetBool (IsWalkingHash, false);
}
void OnWritingMesssageStarted ()
{
keyboardDisabled = true;
}
void OnWritingMesssageEnded ()
{
keyboardDisabled = false;
}
void OnPlayerSpeedChange (object[] changeData)
{
float increasedSpeed = (float)changeData [0];
int bonusDuration = (int)changeData [1];
speed = increasedSpeed;
CancelInvoke ("ResetSpeed");
Invoke ("ResetSpeed", bonusDuration);
}
void ResetSpeed ()
{
speed = origSpeed;
}
void OnPlayerRespawn ()
{
ResetSpeed ();
}
} and
using UnityEngine; using UnitySampleAssets.CrossPlatformInput;
public class PlayerShooting : MonoBehaviour { public int damagePerShot; public float timeBetweenBullets = 0.15f; // The time between each shot. public float range = 100f; // The distance the gun can fire.
float timer; // A timer to determine when to fire.
Ray shootRay; // A ray from the gun end forwards.
RaycastHit shootHit; // A raycast hit to get information about what was hit.
int shootableMask; // A layer mask so the raycast only hits things on the shootable layer.
PhotonView photonView;
Transform playerTransform;
int originalDamagePerShot;
void Awake ()
{
shootableMask = LayerMask.GetMask ("Shootable");
photonView = GetComponentInParent<PhotonView> ();
originalDamagePerShot = damagePerShot;
}
void Update ()
{
// Add the time since Update was last called to the timer.
timer += Time.deltaTime;
if !MOBILE_INPUT
// If the Fire1 button is being press and it's time to fire...
if (Input.GetButton ("Fire1") && timer >= timeBetweenBullets && Time.timeScale != 0) {
// ... shoot the gun.
Shoot ();
}
else
// If there is input on the shoot direction stick and it's time to fire...
if ((CrossPlatformInputManager.GetAxisRaw("Mouse X") != 0 || CrossPlatformInputManager.GetAxisRaw("Mouse Y") != 0) && timer >= timeBetweenBullets)
{
// ... shoot the gun
Shoot();
}
endif
}
void Shoot ()
{
timer = 0f;
shootRay.origin = transform.position;
shootRay.direction = transform.forward;
if (Physics.Raycast (shootRay, out shootHit, range, shootableMask)) {
photonView.RPC ("Shoot", PhotonTargets.All, shootHit.point);
if (shootHit.transform.tag == "Player") {
shootHit.transform.GetComponent<PhotonView> ().RPC ("TakeShot", PhotonTargets.All, damagePerShot, PhotonNetwork.player.ID, shootHit.point);
}
} else {
photonView.RPC ("Shoot", PhotonTargets.All, shootRay.origin + shootRay.direction * range);
}
}
void OnPlayerDamageChange (object[] changeData)
{
if (!photonView.isMine) {
return;
}
int increasedDamage = (int)changeData [0];
int bonusDuration = (int)changeData [1];
damagePerShot = increasedDamage;
photonView.owner.SetIncreasedDamage (true);
CancelInvoke ("ResetDamage");
Invoke ("ResetDamage", bonusDuration);
}
void ResetDamage ()
{
damagePerShot = originalDamagePerShot;
photonView.owner.SetIncreasedDamage (false);
}
void OnPlayerRespawn ()
{
ResetDamage ();
}
}
Your answer
Follow this Question
Related Questions
How to add realtime game events without updating build? 1 Answer
Sync movements Photon 0 Answers
My character carries on the run animation for a few seconds even after standing still 0 Answers
Two different games, connecting to the same server session, is it possible? 0 Answers
How to make two characters to go to the direction of an touched item on a single screen 0 Answers