小编moz*_*szt的帖子

在Unity 3D/spheres中翻转法线

我已经为我的游戏编写了这个代码,我想要的是在一个纹理上翻转法线.我有一个模型和一个纹理,并希望纹理在球体模型内而不是在外面.我想通过在翻转纹理顶部的球体内部的图像周围移动相机来创建360度全景效果.

现在,当我第一次按下播放按钮时,它工作得很好,但是当我停下来并想再次播放时,我看不到电路板,也看不到周围环境.

它似乎每2次尝试一次.我对此很陌生,我不知道我的错误在哪里.

using UnityEngine;
using System.Collections;

public class InvertObjectNormals : MonoBehaviour 
{
    public GameObject SferaPanoramica;

    void Awake()
    {
        InvertSphere();
    }

    void InvertSphere()
    {
        Vector3[] normals = SferaPanoramica.GetComponent<MeshFilter>().sharedMesh.normals;
        for(int i = 0; i < normals.Length; i++)
        {
            normals[i] = -normals[i];
        }
        SferaPanoramica.GetComponent<MeshFilter>().sharedMesh.normals = normals;

        int[] triangles = SferaPanoramica.GetComponent<MeshFilter>().sharedMesh.triangles;
        for (int i = 0; i < triangles.Length; i+=3)
        {
            int t = triangles[i];
            triangles[i] = triangles[i + 2];
            triangles[i + 2] = t;
        }           

        SferaPanoramica.GetComponent<MeshFilter>().sharedMesh.triangles= triangles;
    }
}
Run Code Online (Sandbox Code Playgroud)

unity-game-engine unityscript

2
推荐指数
2
解决办法
1万
查看次数

标签 统计

unity-game-engine ×1

unityscript ×1