Синтаксис:
Используется csharp
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;
public class TankControl : NetworkBehaviour
{
[SerializeField]
private float Speed_of_Tank=25f;
[SerializeField]
private float turn=7f;
private Rigidbody2D telo;
[SerializeField]
private Transform gun;
[SerializeField]
private float Speed_of_Gun_Turn = 5f;
[SerializeField]
float cameradistance = 34.0f;
[SerializeField]
float cameraHeight = 20.0f;
Transform mainCamera;
Vector3 cameraOffset;
Quaternion Turngun()
{
Vector3 mouse = Input.mousePosition;
mouse.z = UnityEngine.Camera.main.transform.position.z;
Vector3 direction = UnityEngine.Camera.main.ScreenToWorldPoint(mouse) - transform.position;
float angle = Mathf.Atan2(direction.y, direction.x) * Mathf.Rad2Deg;
return Quaternion.AngleAxis(angle, Vector3.forward);
}
private void Start()
{
if (!isLocalPlayer)
{
Destroy(this);
return;
}
telo = GetComponent<Rigidbody2D>();
cameraOffset = new Vector3(0f, 0f, -cameradistance);
mainCamera = UnityEngine.Camera.main.transform;
MoveCamera();
}
void MoveCamera()
{
mainCamera.position = transform.position;
mainCamera.Translate(cameraOffset);
mainCamera.LookAt(transform);
}
private void FixedUpdate()
{
gun.rotation = Quaternion.Lerp(gun.rotation, Turngun(), Speed_of_Gun_Turn * Time.deltaTime);
telo.gravityScale = 0;
float xMov = Input.GetAxisRaw("Vertical");
float yMov = Input.GetAxisRaw("Horizontal");
telo.AddForce(transform.right * Speed_of_Tank * xMov, ForceMode2D.Impulse);
telo.AddTorque(turn * yMov * -Mathf.Sign(xMov), ForceMode2D.Impulse);
MoveCamera();
}
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;
public class TankControl : NetworkBehaviour
{
[SerializeField]
private float Speed_of_Tank=25f;
[SerializeField]
private float turn=7f;
private Rigidbody2D telo;
[SerializeField]
private Transform gun;
[SerializeField]
private float Speed_of_Gun_Turn = 5f;
[SerializeField]
float cameradistance = 34.0f;
[SerializeField]
float cameraHeight = 20.0f;
Transform mainCamera;
Vector3 cameraOffset;
Quaternion Turngun()
{
Vector3 mouse = Input.mousePosition;
mouse.z = UnityEngine.Camera.main.transform.position.z;
Vector3 direction = UnityEngine.Camera.main.ScreenToWorldPoint(mouse) - transform.position;
float angle = Mathf.Atan2(direction.y, direction.x) * Mathf.Rad2Deg;
return Quaternion.AngleAxis(angle, Vector3.forward);
}
private void Start()
{
if (!isLocalPlayer)
{
Destroy(this);
return;
}
telo = GetComponent<Rigidbody2D>();
cameraOffset = new Vector3(0f, 0f, -cameradistance);
mainCamera = UnityEngine.Camera.main.transform;
MoveCamera();
}
void MoveCamera()
{
mainCamera.position = transform.position;
mainCamera.Translate(cameraOffset);
mainCamera.LookAt(transform);
}
private void FixedUpdate()
{
gun.rotation = Quaternion.Lerp(gun.rotation, Turngun(), Speed_of_Gun_Turn * Time.deltaTime);
telo.gravityScale = 0;
float xMov = Input.GetAxisRaw("Vertical");
float yMov = Input.GetAxisRaw("Horizontal");
telo.AddForce(transform.right * Speed_of_Tank * xMov, ForceMode2D.Impulse);
telo.AddTorque(turn * yMov * -Mathf.Sign(xMov), ForceMode2D.Impulse);
MoveCamera();
}