记录一下自己Unity的学习经历,这次最终将实现一个类似微信跳一跳的小游戏。
Unity项目基本组成
在Unity中物体是一个场景中最基本的组成部分,物体又由物体的组件来实现不同的功能,所以在Unity中,主要的组成流程便是:
·项目-> 场景->游戏物体->组件->组件参数
脚本也属于组件的一种,而熟练的使用
Ass_1 是 World_0的子物体 GameObject Ass_1 = new GameObject ("Desk"); GameObject World_0 = GameObject.Find ("World"); Ass_1.transform.parent = World_0.transform;
原创
2021-08-18 01:48:32
1765阅读
// Use this for initialization void Start() { GetAllChild(this.transform); } //使用队列实现 public void GetAllChild(Transform parent) { //队列存放需要被遍历的节点 //加入的逻辑为:当前节点的子节点,从第一个子节点到最后一个子节点顺序加入 Queue<Trans..
原创
2021-08-31 09:52:01
1909阅读
// Use this for initialization void Start() { GetAllChild(this.transform); } //使用队列实现 public void GetAllChild(Transform parent) {
原创
2022-01-11 13:59:37
284阅读
直接上代码,测试无误。bool Equal(float f1, float f2)
{
return (Math.Abs(f1 - f2) < 1f);
}
bool dayu(Point p1, Point p2)比较两点坐标大小,先比较x坐标,若相同则比较y坐标
{
return (p1.X > p2.X || (Equal(p1.X , p2.X) && p1.Y
写在前面:在做项目的时候,难免会碰到UI很多的情况,而动态加载UI就是一个很重要的问题。而动态加载UI就需要考虑到设置UI的父子关系。通常我们会使用transform.setparent(transform)来设置父子关系。到这里都还是没毛病。但是偏偏UI在设置父子关系的时候需要考虑到第二个参数。对于初学者往往会遇到UI加载出来,设置子物体后发现UI不见了,但是明明直接拖到UI层次中又
比如清除ARACP这个物体的所有子物体。for (int i = 0; i < ARACP.transform.childCount; i++) { Destroy (ARACP.transform.GetChild (i).gameObject); } using System.Collections;using System.Col...
原创
2021-08-17 17:43:16
2986阅读
协同程序(协同或者协程)线程、进程一个应用程序就是一个进程,笼统的说就是一个.exe程序一个进程中至少一个线程叫主线程。一个或多个线程组合成了进程。协程在unity中为了在主线程中模拟多线程而出现的辅助工具。协程不是多线程,还是单线程,是在操作系统中的空间中模拟多线程。启动协程:StartCoroutine(返回IEnumerator类型返回值的方法名);//开启协程,注意:返回IEnumerat
本节主要介绍如何在unity中实现玩家按E拾取物品的操作,两种方式各有利弊,请按照对应的环境来使用 可拾取物品构建我们先创建一个cube,作为可拾取物品,并将其名称更改为Item; 修改该物体的tag为Item,为后续代码识别做准备为物体再添加一个球形碰撞箱,并设置该球形碰撞箱的半径为4; 球形碰撞箱勾选 is trigger ,因为要检测玩家进入碰撞箱注意,此时应该存在两个碰撞箱,一个是让物体与
我觉得Unity里面的Transform 和 GameObject就像两个双胞胎兄弟一样,这俩哥们很要好,我能直接找到你,你也能直接找到我。我看很多人喜欢在类里面去保存GameObject对象。解决GameObject.Find()无法获取天生activie = false的问题。private GameObject root ;我觉得你最好不要保存GameObject ,而是去保存Transfo
Unity简单的物体运动物体的运动包括位置坐标的改变和旋转。下面是几种运动常见手段的实例。首先我们先new一个project,创建一个GameObject Cube然后开始编写脚本1. 平移1.1 Transform.positionpublic class 移动 : MonoBehaviour {
// Use this for initialization
void Star
using UnityEngine;using System.Collections;public class GiveParent : MonoBehaviour { public GameObject prefab; // Use this for initialization void Start () { GameObject container = GameObjec
原创
2021-12-08 17:31:27
2480阅读
最近看到有个Unity项目有个这样的功能:按住鼠标左键拖动鼠标,屏幕会出现像Windows系统按住鼠标右键拖动鼠标一样,会框选多个物体,然后我自己做了个类似的Demo,看看效果:
鼠标框选多个物体功能录屏 主要逻辑是,鼠标按下的时候记录鼠标屏幕坐标Point0(X0,Y0),当按住鼠标拖动时,每一帧记录鼠标屏幕左边Point1(X1,Y1),然后根据这两个点绘制矩形,看下面:然后
一、成员变量position:在世界空间坐标transform的位置。localPosition:相对于父级的变换的位置。如果该变换没有父级,那么等同于Transform.position。eulerAngles:世界坐标系中的旋转(欧拉角)。localEulerAngles:相对于父级的变换旋转角度。right:世界坐标系中的右方向。(世界空间坐标变换的红色轴。也就是x轴。)up:世界坐标系中的
using System.Collections;using System.Collections.Generic;using UnityEngine;public class Roation : MonoBehaviour { //要找子物体的那个物体 private GameObject game; public Transform parent, tracker...
原创
2021-08-18 01:40:30
1962阅读
简介这篇博客主要介绍了怎么简单的使用Unity3d来搭建一个简单的太阳系,以及做一个学习记录,分享一下学习Unity3d的心得。 使用工具:Unity3d 5.5实现1.材料的管理先是界面的选择吧,这里我选的是“2 by 3”的界面,我觉得这个界面的好处就是,能尽可能的把所有的工作窗口显示出来吧。(其实是被同学安利的= =),至于怎么调,下图已说明: 由于行星大多数都是属于球体,所以我们要新建
Unity中移动脚本在Unity3d中,有多种方式可以改变物体的坐标,实现移动的目的,其本质是每帧修改物体的position,下面就给大家介绍下物体移动的几种方法。1、 通过Transform组件移动物体通过Transform组件移动物体transform 组件用于描述物体在空间中的状态,它包括 位置(position), 旋转(rotation)和 缩放(scale)。 其实所有的移动都会导致p
1 研究目的与意义Unity3D作为一款跨平台的游戏开发引擎,有着友好的操作界面和强大的性能,利用Unity3D模拟计算机硬件的组装过程,认识该软件,学习它的操作方法,熟悉基本控件,十分有效。同时对计算机硬件组装的模拟,能更好地认识计算机硬件,掌握组装电脑的一些基本技能不仅能培养动手能力,同时也能巩固自己的理论知识,之后加以运用。通过本次项目的研究,可以培养研究能力、创新能力、加强对所学知识的运用
比如迫击炮发射的子弹是抛物线运行的,并且在垂直方向上子弹做自由落体运动,如果垂直方向上不做自由落体(仅仅是一个匀速的抛物线),有很多简便的方法可以实现,比如设置一个起始点,一个最高点,一个目标点,让物体按照这三个点移动就可以,稍微复杂点的用dotween,itween设置个路径点,按照路径点移动.
下面开始逻辑:
迫击炮抛物线击中目标单位,需要的参数是:1.目标单位; 2
写在前面的话,前两天有个朋友在QQ上问我 如何获取主角面朝方向一定区域中的敌人对象。这个命题看似简单,其实里面蕴含了很多数学方面的东西。今天刚好有时间我就彻底的把这个疑问写在博客中。希望可以帮助到他。在上代码之前请大家跟我先做几个简单的练习题,角度向量的计算一定要学会,不然后面的东西会很难懂。1.已知3D坐标,和一个旋转角度,以及一段距离,求目标点的3D坐标。已知当前点为Target,目标点沿着T