文档章节

自动校准模型中心点

o
 osc_4nmshwhm
发布于 2018/08/06 16:28
字数 238
阅读 0
收藏 0
red
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ceshi2 : MonoBehaviour
{

    void Start()
    {
        obj = GameObject.Find("Cube").transform;

        foreach (Transform tr in transform)
        {
            tr.gameObject.AddComponent<MeshCollider>();
        }

     
    }
  Transform obj;
    void Update()
    {
        TarRaycast();

        if (V.Count==30)
        {
            Vector3 center=Vector3.zero;
            foreach (Vector3 v in V)
            {
                center += v;
            }
            center = center / 30;
            obj.position = center;

            float f = transform.localScale.x;

            transform.parent = obj;
            obj.position = Vector3.zero;
            obj.localScale = Vector3.one / f;
        }





    }
    Vector3 V1, V2;

    Vector3 第一次碰撞点;
    bool 是第一次碰撞;

    List<Vector3> V = new List<Vector3>();


    Vector3 mp;//鼠标位置
    Transform targetTransform;//点选的物体


    bool TarRaycast()
    {
        mp = Input.mousePosition;
        targetTransform = null;

        RaycastHit hitInfo;

        V1 = new Vector3(Random.Range(-100, 100), Random.Range(-100, 100), Random.Range(-100, 100));
        if (!是第一次碰撞)
            V2 = new Vector3(Random.Range(-100, 100), Random.Range(-100, 100), Random.Range(-100, 100));
        else
        {
            V2 = 第一次碰撞点 + new Vector3(Random.Range(-30, 30), Random.Range(-30, 30), Random.Range(-30, 30));
        }
        bool grounded = Physics.Linecast(V1,V2,out hitInfo);

        if (grounded)
        {
            错误射线 = -10000;
            if (是第一次碰撞 == false)
            {
                第一次碰撞点 = hitInfo.point;
                是第一次碰撞 = true;
            }
            Debug.LogError("碰到了:" + hitInfo.point);
            V.Add(hitInfo.point);
            Debug.DrawLine(V1, V2, Color.red, 100f);

        }
        else
        {
            错误射线++;
            Debug.LogError("没碰到");
            if (错误射线 > 500)
            {
                transform.localScale += new Vector3(0.05f,0.05f,0.05f);
            }
        }
       
        return false;

    }
    int 错误射线;
}

 

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。

暂无文章

OSChina 周五乱弹 —— 你大妈还是你大妈

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @watergood:是时候分享一波我的这张纯音乐歌单了,过去的五年多时间里,我陆陆续续地把听到的好听的纯音乐添加了进去,目前一共65首,相信总...

小小编辑
43分钟前
19
0
在Objective-C中生成随机数 - Generating random numbers in Objective-C

问题: I'm a Java head mainly, and I want a way to generate a pseudo-random number between 0 and 74. In Java I would use the method: 我主要是Java头,我想要一种生成0到74之间的伪随......

技术盛宴
51分钟前
13
0
ftp-ftps-sftp的关系

Ftp FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作...

独钓渔
今天
12
0
使Vim将所有空格显示为字符 - Make Vim show ALL white spaces as a character

问题: I can't find a way to make Vim show all white spaces as a character. 我找不到让Vim将所有空白显示为字符的方法。 All I found was about tabs, trailing spaces etc. 我发现的只......

富含淀粉
今天
23
0
RN 接入高德地图遇到的一些问题

react-native-amap-geolocation、react-native-amap3d 1、iOS Geolocation.getCurrentPosition 获取坐标后,没有返回 address 信息? 逆地理编码 Android 默认返回逆地理编码,而 iOS 需要手...

Jack088
今天
14
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部