标题:unity引擎写的3D魔方
只看楼主
bxe
Rank: 1
等 级:新手上路
帖 子:57
专家分:7
注 册:2019-3-21
得分:0 
程序代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

/// <summary>
///

/// </summary>
public class Fractal : MonoBehaviour
{
    //网格 材质
    public Mesh mesh;
    public Material material;

    //生成深度 上限
    private int depth;
    public int maxDepth ;

    //子物体缩放
    public float childScale;

    private void Start()
    {
        //给空物体 添加网格和材质组件,并指定样式
        gameObject.AddComponent<MeshFilter>().mesh = mesh;
        gameObject.AddComponent<MeshRenderer>().material = material;

        //限制生成深度
        if(depth < maxDepth)
            new GameObject("Fractal Child").AddComponent<Fractal>(). Initialize(this);
           

    }

    /// <summary>
    /// 在start()之前调用,对字段赋值
    /// </summary>
    /// <param name="parent"></param>
    private void Initialize(Fractal parent)
    {
        mesh = parent.mesh;
        material = parent.material;
        maxDepth = parent.maxDepth;
        depth = parent.depth + 1;
        childScale = parent.childScale;
        this.transform.parent = parent.transform;
        transform.localScale = Vector3.one * childScale;
        //不懂
        transform.localPosition = Vector3.forward * (0.5f + 0.5f * childScale);
        //transform.localPosition = Vector3.forward * 0.5f + Vector3.forward * (0.5f * childScale);
        Debug.Log(this.transform.localPosition);
        Debug.Log(this.transform.position);
        Debug.Log(depth);



    }

}
请帮我理解一下第47,虽然行为逻辑上理解(父物体一半宽+子物体一半宽)
但就是无法理解是怎么做到的(比如0.5 是怎么来的,为什么任意改变childScale不会影响结果)。




[此贴子已经被作者于2019-8-18 14:54编辑过]

2019-08-18 14:47
zhulei1978
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:53
帖 子:1351
专家分:1200
注 册:2006-12-17
得分:0 
这魔方怎么有点变形了

其实我就是改变社会风气,提高少女素质,刺激电影市道,提高年轻人内涵,玉树临风,风度翩翩的整蛊专家,我名叫古晶,英文名叫JingKoo!
2019-08-18 16:01



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-494522-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.810828 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved