IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> 我的游戏开源(多人Mirror) -> 正文阅读

[游戏开发]我的游戏开源(多人Mirror)

player的主要代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine.UI;
using TMPro;
using UnityEngine;
using Mirror;

public class Playercode : NetworkBehaviour {

?? ?public float speed = 5f;
?? ?//cam
?? ?public Camera cam;
?? ?public Camera cam2;
?? ?public Camera cam3;
?? ?//sync
?? ?[Header("sync")]
?? ?public int killsum;
?? ?[SyncVar(hook = "SetColor")]
?? ?Color PlayerColor = Color.black;
?? ?[SyncVar(hook = "showname")]
?? ?private string pname;
?? ?public string playername;
?? ?//[SyncVar(hook = "RpcsetImagecolor1")]
?? ?private Color image1;
?? ?//[SyncVar(hook = "RpcsetImagecolor2")]
?? ?private Color image2;
?? ?//
?? ?public GameObject anm;
?? ?public SkinnedMeshRenderer playermesh;
?? ?[Header("CD")]
?? ?private float FireCD;
?? ?private float moveCD;
?? ?//time
?? ?public int maxrealshijian = 10;
?? ?private int realshijian;
?? ?private 倒计时 djs;
?? ?//
?? ?Vector3 fuhuodian;
?? ?Vector3 guanzhandian;
?? ?//
?? ?public GameObject killplayer;
?? ?public GameObject bullutprefab;
?? ?//bool
?? ?public bool die = false;
?? ?private bool change = true;

?? ?[Header("UI")]
?? ?public TMP_Text realtime;
?? ?public TMP_Text myname;
?? ?public Text bishiCD;
?? ?public Text shunyiCD;

? ? // Use this for initialization
? ? public override void OnStartLocalPlayer()
? ? {
? ? ? ? base.OnStartLocalPlayer();
?? ??? ?//kill = GameObject.Find("kill").GetComponent<Image>();
?? ??? ?//beikill = GameObject.Find("beikill").GetComponent<Image>();
?? ??? ?djs = GameObject.Find("jishi").gameObject.GetComponent<倒计时>();
?? ??? ?if (djs == null) NetworkManager.singleton.StopClient();
?? ??? ?killsum = 1;
?? ??? ?killsum--;
?? ??? ?Application.targetFrameRate = 30;
?? ??? ?//Cursor.visible = false;
?? ??? ?//Cursor.lockState = CursorLockMode.Locked;
?? ??? ?guanzhandian = new Vector3(30, 10, -2.5f);
?? ??? ?fuhuodian = transform.position;
?? ??? ?cam2.gameObject.SetActive(false);
?? ??? ?cam3.gameObject.SetActive(false);
?? ??? ?cam = cam2;
?? ??? ?cam.gameObject.SetActive(true);
?? ??? ?realtime.gameObject.SetActive(false);
?? ??? ?realshijian = maxrealshijian;
?? ?}
? ? public override void OnStartServer()
? ? {
? ? ? ? base.OnStartServer();
?? ??? ?float r = Random.Range(0f, 1f);
?? ??? ?float g = Random.Range(0f, 1f);
?? ??? ?float b = Random.Range(0f, 1f);
?? ??? ?PlayerColor = new Color(r,g,b);
?? ??? ?pname = playername;
?? ?}

? ? private void FixedUpdate()
? ? {
?? ??? ?if (!isLocalPlayer) return;
?? ??? ?Move();
?? ??? ?MouseLook();
?? ??? ?if (2.0f - Time.time + FireCD >= 0)?
?? ??? ?{
?? ??? ??? ?string t;
?? ??? ??? ?t = "中指攻击冷却:" + (2.0f - Time.time + FireCD).ToString();
?? ??? ??? ?bishiCD.text = t;
?? ??? ?}
?? ??? ?else
?? ??? ??? ?bishiCD.text = "中指攻击冷却:0";
?? ??? ?if (5.0f - Time.time + moveCD >= 0)
?? ??? ?{
?? ??? ??? ?string t;
?? ??? ??? ?t = "瞬移冷却:" + (5.0f - Time.time + moveCD).ToString();
?? ??? ??? ?shunyiCD.text = t;
?? ??? ?}
?? ??? ?else
?? ??? ??? ?shunyiCD.text = "瞬移冷却:0";
?? ?}
? ? // Update is called once per frame
? ? void Update () {
?? ??? ?if (!isLocalPlayer) return;
?? ??? ?if (this.transform.position.y < -13.0f)
?? ??? ?{
?? ??? ??? ?//transform.position = guanzhandian;
?? ??? ??? ?if (djs.daojishi > 0)
?? ??? ??? ??? ?transform.position = fuhuodian;
?? ??? ??? ?else
?? ??? ??? ?{
?? ??? ??? ??? ?transform.position = guanzhandian;
?? ??? ??? ??? ?if (killplayer != null)?
?? ??? ??? ??? ??? ?killplayer.GetComponent<Playercode>().killsum++;
?? ??? ??? ??? ?die = true;
?? ??? ??? ??? ?realshijian = maxrealshijian;
?? ??? ??? ??? ?StopCoroutine("reallife");
?? ??? ??? ??? ?StartCoroutine("reallife");
?? ??? ??? ??? ?transform.Translate(0, 0, Random.Range(-2.0f, 2.0f));
?? ??? ??? ?}
?? ??? ?}
?? ??? ?if (Input.GetKeyDown(KeyCode.Space))
?? ??? ?{
?? ??? ??? ?Ray ray = new Ray(transform.position, Vector3.down);
?? ??? ??? ?if (Physics.Raycast(ray,1.5f))
?? ??? ??? ?{
?? ??? ??? ??? ?anm.GetComponent<Animator>().SetBool("jump?", true);
?? ??? ??? ??? ?GetComponent<Rigidbody>().velocity = Vector3.up * 8;
?? ??? ??? ?}
?? ??? ?}
? ? ? ? else
? ? ? ? {
?? ??? ??? ?Ray ray = new Ray(transform.position, Vector3.down);
?? ??? ??? ?if (Physics.Raycast(ray, 1.5f))
?? ??? ??? ?{
?? ??? ??? ??? ?anm.GetComponent<Animator>().SetBool("jump?", false);
?? ??? ??? ?}
?? ??? ?}
?? ??? ?if(Input.GetKeyDown(KeyCode.V))
? ? ? ? {
?? ??? ??? ?if (change)
? ? ? ? ? ? {
?? ??? ??? ??? ?cam = cam3;
?? ??? ??? ??? ?change = false;
?? ??? ??? ??? ?cam.gameObject.SetActive(true);
?? ??? ??? ??? ?cam2.gameObject.SetActive(false);
?? ??? ??? ?}
? ? ? ? ? ? else if(!change)
? ? ? ? ? ? {
?? ??? ??? ??? ?cam = cam2;
?? ??? ??? ??? ?change = true;
?? ??? ??? ??? ?cam.gameObject.SetActive(true);
?? ??? ??? ??? ?cam3.gameObject.SetActive(false);
?? ??? ??? ?}
? ? ? ? }

?? ??? ?if (die || djs.daojishi > 0) return;
?? ??? ?if (Input.GetMouseButtonDown(0) && Time.time - FireCD >= 2.0f)?
?? ??? ?{
?? ??? ??? ?CmdFire();
?? ??? ??? ?FireCD = Time.time;
?? ??? ?}
?? ??? ?if (Input.GetKeyDown(KeyCode.E) && Time.time - moveCD >= 5.0f)
? ? ? ? {
?? ??? ??? ?transform.Translate(0, 0, 2.5f);
?? ??? ??? ?moveCD = Time.time;
? ? ? ? }
?? ?}
?? ?/*[Command]
?? ?void Cmdchangeimage()
? ? {
?? ??? ?image1 = killzhe.GetComponent<Player>().playermesh.material.color;
?? ??? ?image2 = this.playermesh.material.color;
?? ?}*/
?? ?void Move(){
?? ??? ?float x = Input.GetAxis ("Horizontal");
?? ??? ?float z = Input.GetAxis ("Vertical");
?? ??? ?if (z > 0)
?? ??? ??? ?anm.GetComponent<Animator>().SetInteger("run?", 1);
?? ??? ?else if (z < 0)
?? ??? ??? ?anm.GetComponent<Animator>().SetInteger("run?", 2);
?? ??? ?else
?? ??? ??? ?anm.GetComponent<Animator>().SetInteger("run?", 0);

?? ??? ?Vector3 fwd = transform.forward;
?? ??? ?Vector3 f = new Vector3 (fwd.x, 0, fwd.z).normalized;
?? ??? ?Vector3 r = transform.right;
?? ??? ?Vector3 move = f * z + r * x;
?? ??? ?transform.position += move * speed * Time.deltaTime;
?? ??? ?Debug.Log(x + " " + z);
?? ?}

?? ?void MouseLook(){
?? ??? ?float mx = Input.GetAxis ("Mouse X");
?? ??? ?float my = Input.GetAxis ("Mouse Y");

?? ??? ?Quaternion qx = Quaternion.Euler (0, mx*2, 0);
?? ??? ?Quaternion qy = Quaternion.Euler (-my*2, 0, 0);

?? ??? ?transform.rotation = qx * transform.rotation;
?? ??? ?cam.transform.rotation = cam.transform.rotation * qy;

?? ??? ?float angle = transform.eulerAngles.x;
?? ??? ?if (angle > 180) {
?? ??? ??? ?angle -= 360;
?? ??? ?}
?? ??? ?if (angle < -180) {
?? ??? ??? ?angle += 360;
?? ??? ?}

?? ??? ?if (angle > 80) {
?? ??? ??? ?transform.eulerAngles = new Vector3 (80, transform.eulerAngles.y, 0);
?? ??? ?}

?? ??? ?if (angle < -80) {
?? ??? ??? ?transform.eulerAngles = new Vector3 (-80, transform.eulerAngles.y, 0);
?? ??? ?}
?? ?}

?? ?public void hidemouse()
? ? {
?? ??? ?Cursor.visible = false;
?? ??? ?Cursor.lockState = CursorLockMode.Locked;
?? ?}
?? ?[Command]
?? ?void CmdFire()
? ? {
?? ??? ?GameObject bullut = Instantiate(bullutprefab, transform.position, this.cam.transform.rotation);
?? ??? ?bullut.GetComponent<peng>().fasheshe = this.gameObject;
?? ??? ?bullut.transform.Rotate(0, -90, 0);
?? ??? ?bullut.transform.Translate(1, 0, 0);
?? ??? ?GameObject.Destroy(bullut, 2.0f);
?? ??? ?bullut.GetComponent<Rigidbody>().velocity = this.cam.transform.forward * 40;
?? ??? ?NetworkServer.Spawn(bullut);
? ? }

?? ?//[ClientRpc]
?? ?void showname(string _,string changename)
? ? {
?? ??? ?myname.text = changename;
?? ??? ?Debug.Log("change");
?? ?}
?? ?void SetColor(Color _,Color newColor)
?? ?{
?? ??? ?playermesh.material.color = newColor;
?? ??? ?Debug.Log("change");
?? ?}
?? ?public IEnumerator reallife()
? ? {
?? ??? ?realtime.gameObject.SetActive(true);
?? ??? ?if (realshijian <= 0)
?? ??? ?{
?? ??? ??? ?die = false;
?? ??? ??? ?realtime.gameObject.SetActive(false);
?? ??? ??? ?transform.position = fuhuodian;
?? ??? ?}
?? ??? ?else
?? ??? ?{
?? ??? ??? ?string s = "距复活还有" + realshijian.ToString() + "秒";
?? ??? ??? ?realtime.text = s;
?? ??? ??? ?yield return new WaitForSeconds(1);
?? ??? ??? ?realshijian--;
?? ??? ??? ?StartCoroutine("reallife");
?? ??? ?}
?? ??? ?
? ? }
?? ?//[ClientRpc]
?? ?/*public void RpcsetImagecolor1(Color _1,Color _2)
? ? {
?? ??? ?kill.color = _2;
?? ??? ?Debug.Log("kill");
? ? }
?? ?public void RpcsetImagecolor2(Color _1, Color _2)
?? ?{
?? ??? ?beikill.color = _2;
?? ?}
?? ?public IEnumerator clearkill()
? ? {
?? ??? ?yield return new WaitForSeconds(8);
?? ??? ?killzhe = null;
? ? }*/

}
?

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2022-05-04 07:31:23  更:2022-05-04 07:32:20 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 10:28:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码