Unity-3D模型展示

将3D模型放置到某个位置,然后通过鼠标左键进行旋转的操作

一种方法是添加另外的相机,采用RenderTexture来渲染该相机的内容

那么RenderTexture是做什么的呢?

RenderTexture可以捕获从摄像机、光源和其他对象渲染的图像,并将结果保存到纹理中。

在使用RenderTexture时,需要将其分配给一个摄像机或光源,并设置相应的属性,例如分辨率、格式、深度缓冲区、清除颜色、裁剪矩形等

RawImage和Image有什么区别呢?

Image组件使用Mesh和Material来渲染图像,如果需要在UI中显示简单的图像,例如图标或按钮,则可以使用Image组件

RawImage组件则使用Unity的UGUI系统内置的UI Raw Image组件来渲染图像,如果需要在UI中显示高级图像效果,例如视频、动态纹理或WebCam输入,则可以使用RawImage组件

步骤如下:

一、创建新的相机,创建新的RenderTexture,并把RenderTexture赋值给该相机,如下

二、创建新的Canvas,用于显示该图像,并在节点下创建RawImage,把RenderTexture赋值给该RawImage

三、把旋转脚本挂载到该RawImage下,注意里面的target就是你的旋转目标,脚本如下:

using UnityEngine;
using UnityEngine.EventSystems;

/// <summary>
/// 引入拖拽接口,实现接口
/// </summary>
public class RotateModel : MonoBehaviour,IDragHandler,IBeginDragHandler
{
    public bool rotateEnable = true;

    public Transform target;

    public Vector2 rotateSpeed;

    private Vector2 lastMouse;

    /// <summary>
    /// 拖拽过程中
    /// </summary>
    /// <param name="eventData"></param>
    public void OnDrag(PointerEventData eventData)
    {
        if (!rotateEnable) return;

        Vector2 offset = eventData.position - lastMouse;

        if(Mathf.Abs(offset.x) > Mathf.Abs(offset.y))
        {
            target.Rotate(Vector2.down * Time.deltaTime * rotateSpeed.y * offset.x,Space.World);
        }
        else
        {
            target.Rotate(Vector2.right * Time.deltaTime * rotateSpeed.x * offset.y,Space.World);
        }
        lastMouse = eventData.position;
    }
    /// <summary>
    /// 开始拖拽
    /// </summary>
    /// <param name="eventData"></param>
    public void OnBeginDrag(PointerEventData eventData)
    {
        if (!rotateEnable) return;

        //target = ModelShowControl.instance.GetModel();

        lastMouse = eventData.position;

    }
}

运行游戏,即可进行旋转!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Laker404

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值