首页 > 其他分享 >游戏物体

游戏物体

时间:2023-05-29 19:47:31浏览次数:34  
标签:Cube 游戏 示例 GameObject 物体 go 预制件

游戏物体

1.物体的标签和层级

标签可以方便查找物体。

层级可以运用在一些操作上,比如Camera中Inspector中的Culling Mask上,可以通过勾选掉一些层级来屏蔽显示一些物体

2.摄像机

组件Camera>Projection下的persepective表示透视,透视模式下可以通过Field in view调镜头的角度;另一个Orthography表示正交即在播放时场景没有透视效果。

组件Camera>Clipping Planes为视距设置选项,在视距范围之外(高于最远视距,低于最近视距)的物体无法被摄像机看到。

3.预制件

3.1克隆预制件

使用的API:GameObject.Instantiate(变量名);

示例:

using UnityEngine;

public class Test : MonoBehaviour

{

    void Start()

    {

        GameObject go = Resources.Load<GameObject>("Cubes/Cube");

        GameObject.Instantiate(go);

    }

}

在Project中新建Resources文件夹,在Resources文件夹下新建Cubes文件夹,将Hierachy中做好的物体Cube拖入Cubes文件夹中,制成预制件。该段代码实现的功能是:在运行时将Resources/Cubes文件夹中的Cube预制件克隆一份并显示。

3.2修改预制件

预制件的修改的两种方式;

第一种:在Project中双击预制件,或者在Hietachy中点击其中一个预制件的最后的“>”标志,进入预制件修改视图,在修改视图中进行预制件的修改。

第二种:在Hierachy中选择一个预制件,直接进行修改,修改后再单击Hierachy中的预制件,在Inspector中找到Override按钮,点击按钮并选择Apply All即可完成对预制体的修改。预制件的Inspector中的组件参数修改后会留下标记,在标记行点击鼠标右键会出现Apply to prefab”/*预制件名称*/”的提示框,点击即将修改应用至预制件。

4.通过脚本操作物体

4.1查找物体

4.1.1按照路径查找物体

使用的API:GameObject.Find(物体的Hietachy路径);

示例:

using UnityEngine;

public class Test : MonoBehaviour

{

    void Start()

    {

        GameObject go = GameObject.Find("Cube/Sphere");

        go.SetActive(false);

    }

}

在Hierachy中新建一个物体Cube,在Cube下新建一个子物体Sphere,将含上面代码的脚本挂载到某一物体上,可以实现在运行时隐藏物体Sphere,若一个文件夹下有同名的多个物体,则查找到的物体为创建时间最短的物体。

4.1.2.按照标签查找

使用的API:GameObject.FindGameObjectWithTag("标签名");

示例:

using UnityEngine;

public class Test : MonoBehaviour

{

    void Start()

    {

        GameObject go = GameObject.FindGameObjectWithTag("Player");

        go.SetActive(false);

    }

}

该段代码的功能是找到最后将标签设置成Player的物体,并在运行时隐藏该物体。

4.2修改物体名称

使用的API:物体名.name=”修改后物体名称”;

示例:

using UnityEngine;

public class Test : MonoBehaviour

{

    void Start()

    {

        GameObject go = GameObject.Find("Cube/Sphere");

        go.name = "CuteSphere";

    }

}

该段代码功能是找到物体Sphere,并在运行时将该物体名称改为CuteSphere。

4.3修改物体位置

使用的API:变量名.transform.position=/*更改后的位置*/

示例:

using UnityEngine;

 

public class Temp : MonoBehaviour

{

    public GameObject cube;

    void Start()

    {

        cube.transform.position = new Vector3(2, 1, 3);

    }

}

该段代码功能是,将物体的位置移动到世界坐标(2,1,3)的位置。

如果是想让物体移动到相对坐标(2, 1, 3)的位置,可将代码cube.transform.position = new Vector3(2, 1, 3);写成cube.transform.localposition = new Vector3(2, 1, 3);

如果想让找到的物体在运行时旋转一定角度,可以将上面示例中的代码cube.transform.position = new Vector3(2, 1, 3);写成go.transform.Rotation= Quaternion.Euler(new Vector3(a, b, c))或cube.transform.eulerAngles = new Vector(a,b,c))/*a,b,c表示旋转角度*/;

如果想让找到的物体在运行时放大或缩小,可以将上面示例中的代码cube.transform.position = new Vector3(2, 1, 3);写成cube.transform.localScale = new Vector3(a,b,c))/*a,b,c表示放大倍数*/;

4.4删除物体

使用的API:Destroy( );

示例:

using UnityEngine;

public class Test : MonoBehaviour

{

    void Start()

    {

        GameObject go = GameObject.Find("Cube/Sphere");

        Destroy(go);

    }

}

该段代码功能是找到物体Sphere,并在运行时删除该物体。

如果想实现在运行后5秒消除,可以将代码Destroy(go);修改为Destroy(go,5);。

如果想让物体在切换场景的时候不销毁,可以将Destroy(go);修改为DontDestroyOnLoad(go);。

4.5克隆物体

示例:

using UnityEngine;

public class Test : MonoBehaviour

{

    public GameObject Cube;

    void Start()

    {

        GameObject.Instantiate(Cube);

    }

}

将含上面代码的脚本挂载到某一物体上,并将需要克隆的物体Cube拖入脚本组件中,运行后便可在场景中得到一个克隆的预制体Cube。

 

 

标签:Cube,游戏,示例,GameObject,物体,go,预制件
From: https://www.cnblogs.com/gatran/p/17441455.html

相关文章

  • 物体组件
    物体组件1.组件的基本操作代码类名后面跟的MonoBehaviour使脚本能够挂到物体的组件中。组件在Inspector视图中,可以通过最下面的AddComponent添加组件,通过组件点击组件名左边的勾选符号打开或关闭组件,通过组件名右边的三个点下面的RemoveComponent移除组件。2.通过脚本操作组......
  • Multiserver游戏服务器Demo[C++&Lua]
    代码参考代码文件参考下述详解的类图,工程参考第零章工程说明关键特性对Socket库进行封装,抹平Socket的Window&Linux的平台差异。C++嵌入lua脚本,增加开发者编码效率,减少编译时间消耗。非阻塞网络IO多线程任务模型多服务模型详解Socket库封装主要是对C++的Socket库进行......
  • Python猜拳小游戏
    #猜拳小游戏#0:石头;1:剪刀;2:布#账户:yujinhua#密码:123456importrandom#随机数computer=random.randint(0,2)account=str(input("请输入游戏账户:"))password=int(input("请输入游戏密码:"))ifaccount==("yujinhua")andpassword==123456:  print("对局开始&......
  • 常见项目——C语言实现2048小游戏(附源码和可执行文件)
    1.实现效果展示1.1界面图片说明:进入下面各页面后均可通过按键“q”来退出。1)菜单页2)开始游戏页3)游戏规则页4)按键说明页5)退出游戏页1.2视频展现戳此处查看视频演示1.3游戏源码及可执行文件(exe)下载支持作者,请关注公众号“优秀物联人”回复“2048小游戏”获取下......
  • 如何用C语言做一个三子棋游戏
    如何来做一个三子棋游戏呢,首先老规矩先来做一个简易的菜单下一步让这个菜单能够实现它的功能,选则1就开始游戏,选择0就退出游戏,不是1不是0 那就是选错了提示选择错误。创建一个变量input 用来存放我们输入的数字,利用do while(因为dowhile 循环最少可以循环一次,比较符......
  • C语言猜字游戏记录
    1.猜字游戏的逻辑2.猜字游戏主体结构的实现3.菜单函数4.玩游戏函数##用rand函数和时间戳达到随机......
  • x86游戏逆向之实战游戏线程发包与普通发包的逆向
    网游找Call的过程中难免会遇到不方便通过数据来找的或者仅仅查找数据根本找不到的东西,但是网游中一般的工程肯定要发给服务器,比如你打怪,如果都是在本地处理的话就特别容易产生变态功能,而且不方便与其他玩家通信,所以找到了游戏发包的地方,再找功能就易如反掌了。 在游戏逆向过程......
  • 使用 Rust 开发一个微型游戏
    使用Rust构建微型游戏--用于理解游戏开发一、创建游戏Agenda建立项目实现Gameloop不同的游戏模式添加玩家添加障碍和计分汇总理解Gameloop为了让游戏流畅、顺滑的运行,需要使用GameloopGameloop:初始化窗口、图形和其它资源每当屏幕刷新(通常是每秒30......
  • win10电脑游戏全屏占不满整个屏幕解决方法
    win10电脑游戏全屏占不满整个屏幕解决方法 工具/原料华为MateBookWindows10win10电脑游戏全屏占不满整个屏幕解决方法1按win+r打开并运行,输入regedit,然后按Enter进入注册表编辑器页面;2依次展开以下路径:HEKY_LOCAL_MACHINE/SYSTEM/C......
  • M洞察|“MOBA”还是“MMO”?2023上半年热门手游大盘点来了,拯救你的游戏荒
    2023年Q1中国移动游戏市场整体表现不及预期,实际销售收入为486.94亿元,同比下降19.42%。虽整体有所下滑,但新鲜血液依然迸发强劲。3月22日,一款玩法轻松、新颖的种田类手游《桃源深处有人家》正式上线,玩家纷纷投入其中,化身萝萝山的村民,共同建设美丽新农村。而4月26日备受关注的米哈游新......