Unity position和localposition

1. position是根据世界原点为中心

2. localPosition是根据父节点为中心,如果没有父节点,localpositon和position是没有区别的

3.选中一个物体左上角Global和Local切换看物体世界坐标轴和本地坐标轴

代码:

using UnityEngine;
using System.Collections;

public class TestPostiton : MonoBehaviour {

    void OnGUI()
    {
        if (GUI.Button(new Rect(0, 0, 200, 50), "世界坐标移动"))
        {
            this.gameObject.transform.position = new Vector3(gameObject.transform.position.x+1
                ,gameObject.transform.position.y
                , gameObject.transform.position.z);
        }

        if (GUI.Button(new Rect(0, 50, 200, 50), "本地坐标移动"))
        {
            this.gameObject.transform.localPosition = new Vector3(gameObject.transform.localPosition.x+1
                , gameObject.transform.localPosition.y
                , gameObject.transform.localPosition.z);
        }

        GUI.Label(new Rect(210, 0, 300, 50), "世界坐标:" + string.Format("({0},{1},{2})", gameObject.transform.position.x, gameObject.transform.position.y, gameObject.transform.position.z));
        GUI.Label(new Rect(210, 50, 300, 50), "本地坐标:" + string.Format("({0},{1},{2})", gameObject.transform.localPosition.x, gameObject.transform.localPosition.y, gameObject.transform.localPosition.z));

    }

}
时间: 2024-11-05 16:41:05

Unity position和localposition的相关文章

unity, surface shader access world position and localposition

一,surface shader中访问worldposition 在surface shader中访问世界坐标,只需在Input结构体中声明float3 worldPos即可,如下:  struct Input {            float2 uv_MainTex;            float3 worldPos;        };        void surf (Input IN, inout SurfaceOutputStandard o) { //access worl

Unity 重要基础知识点

这是两个月前的学习记录,发出来了下,如果有误欢迎大家指出: 脚本生命周期 //每当脚本被加载时调用一次 // 1.   在Awake中做一些初始化操作 void Awake(){ //初始化public成员 } // 2.   在每次激活脚步时调用 void OnEnable(){} //在第一次调用Update之前调用一次Start,即使取消激活,再激活也不会再执行 // 3.   在Start中做一些初始化操作 void Start(){ //一般做一些私有成员 } // 4.   每帧调用

Unity学习笔记12——打飞机战斗模块

打飞机战斗模块: 一.场景管理: 1.双方进入场景效果(例如:依次飞入) 关于动画,这里我们使用的是DoTween组件,具体的使用方法可以看我之前的博客: http://blog.csdn.net/linshuhe1/article/details/51331569 2.战斗结束到下次战斗开始过度效果(例如:屏幕渐黑,胜利一方的飞机飞出屏幕显示范围) 黑幕效果:也是使用Plane组件,但是此时使用的材质所绑定的Shader类型,我们需要自行编写Shader文件,然后在Plane上绑定一个脚本,用

基础组件RectTransform

RectTransform组件是Unity编辑器下UGUI系统基本组件,深入理解RectTransform组件是用好UGUI的基本前提. 首先我们知道UI呢首先要就有坐标属性,这样我们才能确定它的位置.其次UI还要控制大小,是一个二维坐标在控制大小.这样一个UI元素才能在屏幕上显示.那么我们原先的组件transform就不能满足条件了,RectTransform就应运而生了.它继承自Transform组件,配合Canvas的使用. 先罗列一下RectTransform的属性:position,l

unity3D游戏开发之Transform的坐标变换注意事项

Transform是unity的核心类之一.表示的是物体的平移,旋转和缩放. 而position和localPosition, 分别表示的是,transform的位置是世界空间,和父空间的描述. 注意是 父空间,并不是自身空间. 注意到这点后,在空间的变换时就会省心很多了. 如果想搞清楚transform.position的变换过程,可以这样来测试: Java代码 //父空间转世界. Debug.Log(transform.position); Debug.Log(transform.paren

《VR入门系列教程》之18---Oculus代码剖析

代码剖析 原文作者:Tony Parisi 那么,Unity究竟是如何支持Oculus VR运行的?首先,我们来看看Unity场景是如何构建的.在Unity集成开发包中有一个相机预设体,这个预设体提供了最基本的VR技术,包括:Oculus的立体渲染和头动追踪,下面我们来具体操作一下. 在Hierarchy面板中定位到OVRCameraRig物体,然后我们点击它左边的向下箭头展开它的子物体,Camera Rig中包含一个叫TrackingSpace的子物体,TrackingSpace下面包含:Le

U3D Transform用法

最近在学习unity3d,下面对Transform类做一个小结 一.常用属性和方法 1.1 常用属性: 用代码展示一下上面的一些属性,值得注意的是myCube是mySphere的父物体 using UnityEngine; public class test : MonoBehaviour { GameObject myCube; GameObject mySphere; void Start() { myCube = GameObject.Find("Cube"); mySphere

Unity3D里的各种坐标系

一.Unity3D中有哪些坐标系? ??坐标系这个概念最早是由法国数学家笛卡尔提出的,并由此创造了用代数方法来研究几何图形的数学分支--解析几何.解析几何的基本思想是将几何图形抽象成点的运动轨迹,从而点可以作为组成图形的基本元素,而描述一个点的位置首先需要建立合适的坐标系.所以,首先我们来了解下Unity3D中都有哪些坐标系吧!Unity3D中的坐标系目前可以分为以下四类:世界坐标.屏幕坐标.视图坐标和GUI坐标.下面我们来对这5类坐标进行详细说明: 世界坐标 世界坐标按照笛卡尔坐标系定义出来的

UGUI背包

1格子的父亲需要持有所有格子 2.格子父亲返回还有没有空了的格子呢 3.背包UI的操作是背包管理脚本,保存,取得,扔掉 4.这儿赋值 GameObject itemPrefab = Resources.Load<GameObject>("Prefabs/Item"); itemPrefab.GetComponent<ItemUI>().UpdateItem(temp.Name); GameObject go = GameObject.Instantiate(it