`

unity3d 学习摸索(一) 实例化GameObject 并调整其角度

 
阅读更多

要unity3d在地图上画多个箭头模型,箭头是用3dmax 制作导入的。要一次复制出多个模型,我只想到用实例化,instantiate 函数,

staticfunctionInstantiate (original : Object, position :Vector3, rotation :Quaternion) : Object

第1个参数:对象名称,第2个参数:对象的位置,第3个参数对象的角度

我主要是对quaternion 四元组理解不好,不用直接调用角度,后来只摸索出来用下面的方法调整角度

(代码先寻找名字为 "mark" 的GameObject ,然后实例化)

脚本为js的,放在主摄像机上,hierarchy 里面建立一个一个名字为“mark"的gameobject就行,gameobject或者为cube、plane什么的都行。

private var go : GameObject;
private var clone : GameObject;
private var temp : Vector3;
private var temp1 : Quaternion;

function Start()
{
  var i : int = 0;;
  go = GameObject.Find("mark");

  go.active = false;
 
 for (var child : Transform in go.transform) {
    ++i;
    child.active = false;
    child.parent.active = false;
    }

  temp = go.transform.position;	`
  temp.x += 10;
  temp.z += 10;
  temp1 = Quaternion.identity;  
  
  for (i = 0; i < 3; i++)
    for (j = 0; j < 3; j++)
    {
      temp.x += 10;
      temp.z += 10;
      temp1.eulerAngles = Vector3(90,30 + (j * 50),0);
      clone = Instantiate(go , temp , temp1);
      
    }
}

主要是 temp1.eulerAngles = Vector3(90,30 + (j * 50),0); 这代码调整实例化对象的角度。

temp1 = Quaternion.identity; 这一句可以省略;

此段代码用来隐藏 go 及其go 的所有子对象,我不知道Unity有函数直接实现此功能么,如果哪位大虾知道,请告诉我,谢谢啦。

go.active = false;
 for (var child : Transform in go.transform)
 { ++i; 
  child.active = false; 
  child.parent.active = false;
 }
分享到:
评论

相关推荐

    Unity3D中通过代码自动为GameObject添加相应的组件1

    这是一个Unity3D内置的C#特性,用于确保在实例化类(继承自MonoBehaviour)的脚本时,目标GameObject已经拥有特定的组件。例如,在描述中的代码示例: ```csharp [RequireComponent(typeof(GUIText))] public class...

    Unity3D入门 :Prefabs(预设)与 Instantiate(实例化)

    在Unity3D游戏开发中,Prefabs(预设)和Instantiate(实例化)是两个非常重要的概念,它们是构建游戏对象和动态管理游戏世界的基石。本文将深入探讨这两个概念,帮助初学者理解并掌握它们在实际项目中的应用。 ...

    如何检测Unity3D中的Gameobject的destroy事件来触发其他操作?2

    在Unity3D中,开发游戏时常常需要监听游戏对象(GameObject)的生命周期事件,特别是当对象被销毁(Destroy)时,可能需要执行某些清理工作或触发相关联的逻辑。标题和描述提到的问题是关于如何在Gameobject被销毁时...

    Unity3D脚本:Unity3D游戏开发解决重复实例化脚本2

    总结一下,Unity3D游戏开发中防止脚本重复实例化的关键在于使用静态变量跟踪实例化状态,并结合`Instantiate()`和`DontDestroyOnLoad()`函数来控制对象的创建和生命周期。通过这样的方式,我们可以确保重要的游戏...

    Unity3d 获得两GameObject间距

    通过以上分析和代码示例,我们可以看到在Unity3D中计算两个`GameObject`之间的距离并不复杂,但其背后的原理和细节却非常重要。掌握这一技能不仅能帮助我们更好地理解Unity的物理系统,还能在实际项目中解决许多具体...

    Unity3D中EZGUI隐藏GameObject的三种方法比较1

    在Unity3D游戏开发中,UI系统是至关重要的部分,特别是在使用EZGUI工具包时,隐藏和显示GameObject是常见的操作。本文将详细比较在Unity3D中使用EZGUI隐藏GameObject的三种方法,以便开发者能够根据具体需求选择最...

    Unity3D如何获得两GameObject间距1

    在本文中,我们将深入探讨如何在Unity3D中获取两个GameObject之间的间距,并通过一个具体的脚本来进行演示。 首先,我们需要了解在Unity3D中,GameObject是一个基本的游戏对象,它可以包含各种组件,如Transform...

    触屏选中Unity3D场景中的GameObject对象代码1

    在Unity3D游戏开发中,触屏交互是移动设备上不可或缺的一部分。特别是在手机游戏领域,玩家通常使用手指触摸屏幕来与游戏世界互动。本篇内容将深入探讨如何通过代码实现利用触屏选择Unity3D场景中的GameObject对象。...

    Unity3D读取数据库向gameobject添加数据2

    我们首先介绍了 Unity3D 中的数据存储方式,然后探讨了如何使用数据库读取数据、使用 JSON 序列化数据,并将数据添加到 gameobject 中。最后,我们提供了一个使用示例代码,展示了如何使用 Unity3D 读取数据库向 ...

    Unity3D中GameObject如何保持预订速率向前移动1

    Unity3D 中 GameObject 如何保持预订速率向前移动 Unity3D 中 GameObject 如何保持预订速率向前移动是 ...通过本文,我们可以了解 Unity3D 中 GameObject 的移动机制,并学习如何使用脚本来控制 GameObject 的移动。

    通过iphone触屏选中Unity3D场景中的GameObject对象代码1

    本文将详细讲解如何通过iPhone的触屏事件来选择Unity3D场景中的GameObject对象,并提供相应的代码示例。 首先,我们要了解Unity3D中处理触摸输入的基本原理。Unity3D为iOS和Android等移动平台提供了内置的触摸输入...

    Unity 3D官方实例源码RogouLikeProject(含注释)

    在这个“RoguelikeProject”实例中,我们将会深入学习如何利用Unity 3D创建一个Roguelike类型的游戏。Roguelike是一种具有随机生成地图、回合制战斗和永久死亡特点的角色扮演游戏。 首先,我们要了解Roguelike游戏...

    WPF程序中嵌入Unity3D程序并通讯

    例如,可以使用Unity的`GameObject.FindObjectOfType()`找到特定的游戏对象,并调用其公开方法。 2. 使用Unity的Application.ExternalCall方法:在WPF中执行JavaScript代码,然后在Unity中通过JavaScript与C#的交互...

    Unity3D Unet网络开发实例

    总之,Unity3D Unet网络开发实例是一个宝贵的学习资源,它帮助开发者掌握多人游戏网络编程的基础,进一步提升游戏开发能力。通过实际操作和研究这个项目,可以深入了解Unet的工作原理,并将其应用到自己的游戏中,...

    Unity3D脚本隐藏GameObject子物体1

    "Unity3D脚本隐藏GameObject子物体1"这个主题探讨了如何通过编程的方式实现这一功能。这篇文章可能是2013年发布的一篇关于Unity3D脚本技巧的博客,受到了414次的关注。 首先,让我们深入理解Unity3D中隐藏...

    unity3d制作贪吃蛇

    - 添加一个地面平面,作为游戏的静态背景,可以通过创建Plane GameObject并调整其尺寸和材质来实现。 2. **游戏对象与组件**: - 贪吃蛇由多个GameObjects组成,每个部分都配备一个2D Rigidbody组件,用于物理...

    unity3d 4.3.4 射击游戏 实例

    本实例基于Unity3D 4.3.4版本,这是一个较早但仍然具有广泛应用价值的版本。该实例是一个初级级别的“打飞机”游戏,非常适合初学者学习和实践。 在Unity3D 4.3.4中,开发射击游戏涉及到多个关键知识点: 1. **...

    Unity3d开发案例(坦克克星游戏,C#版本)

    首先,Unity3D是全球最受欢迎的游戏开发工具之一,它允许开发者创建2D和3D游戏,并支持Windows、Mac、Android、iOS等多种平台。C#作为Unity的主要编程语言,语法简洁,面向对象,特别适合游戏逻辑和脚本编写。 在...

    Unity3D圣典中文脚本

    Unity3D是一款广泛应用于游戏开发的跨平台3D引擎,以其易用性和强大的功能深受开发者喜爱。在《Unity3D圣典中文脚本》中,你将学习到: 1. **3D游戏引擎技术剖析**:这部分内容涵盖了3D图形学的基础,如三维坐标...

    Unity3D实现在单击鼠标位置创建物体2

    Unity3D 实现在单击鼠标位置创建物体2 ... Unity3D 是一个功能强大的游戏引擎,提供了灵活的事件处理机制、对象实例化机制和游戏对象管理机制。通过使用 Unity3D,我们可以轻松地实现各种复杂的游戏逻辑和视觉效果。

Global site tag (gtag.js) - Google Analytics