用unity编写游戏的时候,怎么实现跟BattleGround一样的鼠标效果

Unity游戏游戏开发案例-Unity打造畅玩无阻的小游戏(上) 使用Unity的原始依赖,克隆Pong游戏 阅读详情

我们知道unity里面有第一人称控制器,直接用这个就能实现走路,四周看。但是,这个第一人称控制器的鼠标总是显示在屏幕中,而且它的位置不受控制,在屏幕全部范围都能移动,这不是我们想要的效果。那如何实现像CS一样,有个瞄准的准心在屏幕中央,然后也可以四周转动,当需要选择物品,点击东西的时候鼠标再出现呢?

1、首先要添加一个GUITexture 的图片,就是一个瞄准准心的图片,或者是任意一个你想要的游戏中显示在中心位置的图标。

2、将游戏设置成全屏模式

3、在UpDate()函数中添加一个检测是否要隐藏鼠标的bool变量,当该值为真时,添加Screen.showCursor=false。并且要将鼠标的位置SetCursorPos(Screen.currentResolution.width/2,Screen.currentResolution.height/2)。当该值为假时,Screen.showCursor=true。

4、改变该值,就要通过程序中对对话框的控制,当需要显示对话框时,在那部分的代码中将3中设置的布尔变量改为false,当关闭对话框时,改为true。

需要注意的是,对鼠标的控制SetCursorPos()这个函数一般是有C#脚本写的,如果你其他的代码用的是js写的的话,需要通过js脚本调用C#脚本中的代码。这时候可以参考另一个博客:http://blog.csdn.net/blues1021/article/details/48780315

这个方法可以用。

Unity3D中一些脚本的方法只能用在js中,在C#中是无效的,而C#可以与服务器端通讯,JS本身却不行。而且,如果需要用到js调用c#的问题,js会比c#先编译,所以在mac里编译iOS的时候会出错,提示为无法找到那个C#类。所以势必会遇到这两种语言脚本中方法的互相调用。

解决方法:

1.首先在你的Unity3D程序里建一个Plugins的文件夹,注意必须是这个名字!

2.将要调用的C#类里的系统命名空间去掉,只保留必须要用的命名空间,类名后面的父类也去掉,将里面的方法设为静态的方法。

3.将这个C#类方法Plugins文件夹下。

4.在js里就可以直接引用了,如:test.test();

实例:两个文件 test1.js 和 test2.cs。

test1.js

function OnGUI()

{

if(GUI.Button(Rect(25,25,100,30),"JS Call CS" ))

{

var c = gameObject.GetComponent("test2");

c.PrintTest();

}

}

function testPrint()

{

print("CS Call JS");

}

test2.cs

using UnityEngine;

using System.Collections;

public class test2: MonoBehaviour {

void OnGUI()

{

if(GUI.Button(new Rect(25,70,100,30), "CS Call JS"))

{

test1 c = (test1)gameObject.GetComponent("test1");

c.testPrint();

}

}

void PrintTest()

{

print("JS Call CS");

}

}

这里必须要注意的是JS文件必须是在 "Standard Assets"、 "Pro Standard Assets" 和 "Plugins" 这三个目录中的任何一个里,而CS文件不能与JS文件在一个目录中。原因是,这三个目录里的脚本被最先编译,"Editor"目录里的稍后编译,其他的脚本最后编译。目前unity3d的2.5的版本似乎不支持C# 3.0,所以无法用var的关键字,这样就只支持强类型,所以如果在一个目录下则CS文件无法读取JS里的方法,也就无法编译通过了。而JS调用CS方法则无此限制。


这里我写了大概的步骤,如果有需要的人我可以把我的代码给你参考。

Unity有哪些适合拿来练手的游戏项目? 首先推荐一篇文章,其中涵盖海量Unity和C#的书籍、demo等海量干货。文章链接:Unity 高级程序员应该具备怎样的能力?要怎样成长为 Unity 高级程序员?Unity有哪些适合练手的游戏项目?还是老规矩,全文无付费无套路,Unity学习路线初级实践版来咯~ 阅读详情

相关推荐

从零开始做一款Unity3D游戏<一>——亲自上手使用Unity

本章包含许多对初学者来说很有趣的内容。虽然本书的重点在于 C#语言,但是花些时间来了解游戏开发的整体概念、开发文档以及 Unity 提供的无须编写脚本即可实现的功能也很重要。我们目前并没有深入介绍光照、动画、粒子系统等工具,但是如果你想继续开发Unity 项目,那么花些时间学习这些知识是值得的。下面将讲解的重点将回到编写 Hero Born 游戏的核心机制上,内容包含设置可移动的玩家对象、控制相机以及理解Unity的物理引擎是如何控制游戏世界的等等。基本演示。

m0_58367586的博客 1万+

unity实现简单跑马灯效果

unity中使用c#实现跑马灯效果,可根据自身需求进行修改和优化

Unity开发一款2D横版游戏demo

通过使用unity引擎,实现一款2D横版游戏demo的开发,特别感谢麦扣老师@M_STDIO,使我对unity有了初步而深刻的了解。

weixin_61056520的博客 9689

【用unity实现100个游戏之1】制作类元气骑士、挺进地牢——俯视角射击游戏多种射击效果(一)(附源码)

俯视角射击游戏)是一类以俯视视角进行游戏展示的射击游戏。在这种游戏中,玩家控制着一个角色或载具,从俯视的角度上方观察游戏世界,并与敌人进行战斗。这种视角使玩家能够有更好的全局观察和策略性,同时也强调快速反应和精确射击。视角:俯视角度可以是固定的,也可以随着玩家角色的移动而变化,但都允许玩家以全局视角观察整个战场,有利于制定战略和规划行动。射击:玩家通常需要使用各种武器来与敌人进行战斗,包括枪械、爆炸物等。射击动作依赖于玩家的反应速度和准确性。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 7722

Unity3D开发小游戏】《植物大战僵尸游戏Unity开发教程

一、前言 今天我们要用Unity3D做一个植物大战僵尸的仿制版本。为了保持简单,我们将忽略所有花哨的东西,如菜单,多层次或剪裁场景,并专注于在后院与僵尸作战。 以下是游戏的预览: 二、版本 Unity5.0.1f1 三、正文 1.主摄像机设置 如果我们选择主照相机在层次性然后我们可以设置背景色若要黑色,请调整大小而位置如下图所示: 2.创造草木 注意:右击图像,选择另存为.。,保存到项目的资...

CSDN博客专家,Unity3D高级软件工程师,《Unity 3D从入门到实战》作者。 2万+

最受欢迎的 Unity 年度游戏大作

Unity 引擎的助力下,2024 年的游戏市场呈现出了多元化和精品化的趋势。从跨平台的开放世界大作到独立游戏的精致体验,Unity 引擎无疑成为了游戏开发者的强大工具。以下是一些在 2024 年备受关注和好评的 Unity 年度游戏大作。

Unity打怪升级 7761

Unity Android:用Unity & C#构建8款手机游戏

内容和概述适合初级程序员,通过50多个讲座和16个小时的内容,您将学习所有的unity android游戏开发基础知识,并对android游戏开发背后的概念有深刻的理解。unity android游戏开发的工作机会很多,能够学习unity android游戏开发将会给你一个强大的背景,让你更容易地开发出令人敬畏的android游戏。掌握了这些基础知识后,本课程将带您通过使用unity构建不同的示例游戏,了解更多关于使用unity创建移动android游戏的过程。在Android设备上构建和运行您的游戏

1265

【亲测免费】 FyWorld:打造梦幻中世纪幻想世界的开源模拟游戏

FyWorld:打造梦幻中世纪幻想世界的开源模拟游戏 项目介绍 FyWorld 是一款顶部视角的模拟游戏,背景设定在一个充满魔法与传说的中世纪幻想世界中。这款游戏不仅是一款基础的建造与模拟开源游戏,更是一个Unity制作的教程实例。开发者 Florian "Fy-" Gasquez 将其开发过程记录下来,你可以将其视作一个庞大的教程,或者仅仅是一个狂热的极客在尝试创造一个类似《...

gitblog_01063的博客 351

Unity 2D 游戏开发教程(一)

在这一章中,我们了解了使用预制游戏引擎比自己编写游戏引擎有很多优势。我们谈到了几个有趣的游戏引擎,以及它们对整个游戏开发的影响。我们还概述了 Unity 提供的具体优势,并提到了一些使用 Unity 引擎开发的更知名的游戏。也许很快有一天,有人会提到你的游戏,说它是用 Unity 制作的最著名的游戏之一!本章介绍 Unity 编辑器——安装、配置、导航其窗口、使用其工具集以及熟悉项目结构。

龙哥盟 7054

Unity 高级游戏开发教程(一)

欢迎来到高级 Unity 游戏开发正文第一章。Unity 是一个强大的游戏创作工具。在许多方面,它几乎太强大和复杂了。这使得一些游戏开发者很难充分发挥该软件的潜力。文档、书籍和教程是降低学习曲线的好方法。编程经验,尤其是 C# 编程经验,以及对 Visual Studio 的熟悉也将极大地提高您使用 Unity 的时间。有了所有这些不同的培训选择,其中许多是免费的,这本书提供了什么,其他人没有?是什么让它脱颖而出?嗯,在大多数情况下,前面提到的学习材料会告诉你如何在 Unity 中完成一个简单的任务。

龙哥盟 3164

Unity独立开发游戏之路

Unity独立开发游戏之路

bbbbbbooom的博客 2628

Unity鼠标显示的问题

有的时候你会发现设置显示鼠标也没有,这时候你要看是否在其他地方读取鼠标输入然后顺手隐藏鼠标了,比如第一人称游戏,通过读取鼠标移动来旋转视角,这种时候一般会隐藏鼠标。//锁定鼠标后再解锁,鼠标将自动回到屏幕中心。//锁定鼠标后再解锁,鼠标将自动回到屏幕中心。

qq_40634323的博客 2685

Unity(使用GUI制作第一人称鼠标准星)

属性 简介 方法 注意:准星一般都放在屏幕中央,所以屏幕的(宽高/2)可得中心点 屏幕宽度 Screen.Width 屏幕高度 Screen.Height 矩形宽度 自己声明的变量这里使用W代替 矩形高度 自己声明的变量这里使用H代替 准星间距 自己声明的变量这里使用D代替 解释图 写入过程 因为我们想要动态准星所以打算自己用代码写一个,而不用图片直接贴上去 先声明准星的宽高,和间距其次就是准星贴图

qq_24977805的博客 7091

unity制作小游戏

3d游戏编程与设计第二次作业

lydsera的博客 4690

Unity学习笔记:鼠标控制第一人称视角

鼠标控制视像头,第一人称主角视角。 /// <summary> /// 鼠标控制相机旋转 /// </summary> public class DoRotation : MonoBehaviour { private void Update() { float x = Input.GetAxis("Mouse X"); ...

自闭的饭盒 867

关于游戏开发,如何开发一款游戏(基于unity

关于如何开发一款自己的游戏项目(目前只说客户端),就说说自己的个人观点,自己YY的,不喜勿喷。。 首先,要做一款游戏,如果你要做一款有网络的游戏,有用户数据保存的,那么首先就要有一个服务器,然后我们才能基于unity开发的这个客户端去跟服务器通信,(如果是做单机,那么就请忽略这第一步)我们使用unity跟服务器通信这个机制,叫做网络通信,一款游戏刚开始时,会定好准备使用的是什么网络协议,基于什么

HelloCLanguage的博客 5439

unity 鼠标控制第一人称视角及键盘控制移动升级版

unity 鼠标控制第一人称视角及键盘控制移动升级版

x13804709的博客 2230

unity编写一个简单的小游戏

unity编写一个简单的小游戏简易fly bird的制作关于flybird场景的搭建和素材的导入使用素材搭建game和scene制作柱体bird的scriptcolumn的spritecolumn的生成游戏判定游戏结束画面结语 简易fly bird的制作 关于flybird 这个游戏想必大家都玩过,今天我们要使用unity来写一个差不多的fly bird,需要unity和vs的配合,这个游戏规则就...

haSgit的博客 4万+
上一篇: MFC键盘按键的表示
下一篇: Unity3D+kinect2 实现关节位置到UGUI坐标的转换,以及判断是否在某个UGUI中
sindw
博客等级 码龄10年 2粉丝 3原创
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值